gpt4 book ai didi

python - 从 Google 电子表格 (gspread) 中的单元格获取 href 标签内的链接

转载 作者:行者123 更新时间:2023-12-04 15:23:38 28 4
gpt4 key购买 nike

我正在使用 Python 模块 gspread 尝试从 Google 电子表格的单元格中提取 href 标记内的链接。我尝试了以下方法,并注意到了它们的问题:

  1. worksheet.acell ('B5').value:获取单元格文本,而不是 href 标签内的链接。
  2. worksheet.acell ('B5', value_render_option='FORMULA').value:获取单元格文本,而不是 href 标签内的链接。
  3. worksheet.acell('B5').input_value:返回无。此外,已弃用。

如何从 Google 电子表格的单元格中正确获取 href 标签内的链接?

最佳答案

为了检索单元格的超链接,需要在使用字段的 Sheets API 中使用 spreadsheets.get 方法。不幸的是,我在gspread 中找不到这个方法。所以在这个回答中,我想提出以下流程。

  1. 检索访问 token 。
    • 我认为在这种情况下,可以使用您对gspread 的授权脚本。
  2. 使用 requests 模块请求 Sheets API 中的 spreadsheets.get 方法。
  3. 检索超链接。

示例脚本:

import requests
import urllib.parse


spreadsheetId = "###" # Please set the Spreadsheet ID.
cellRange = "Sheet1!A1" # Please set the range with A1Notation. In this case, the hyperlink of the cell "A1" of "Sheet1" is retrieved.

client = gspread.authorize(credentials) # I think that this is also used in your script for using gsperad.

# 1. Retrieve the access token.
access_token = client.auth.token

# 2. Request to the method of spreadsheets.get in Sheets API using `requests` module.
fields = "sheets(data(rowData(values(hyperlink))))"
url = "https://sheets.googleapis.com/v4/spreadsheets/" + spreadsheetId + "?ranges=" + urllib.parse.quote(cellRange) + "&fields=" + urllib.parse.quote(fields)
res = requests.get(url, headers={"Authorization": "Bearer " + access_token})

# 3. Retrieve the hyperlink.
obj = res.json()
link = obj["sheets"][0]['data'][0]['rowData'][0]['values'][0]['hyperlink']
print(link)
  • 此示例脚本检索“Sheet1”上单元格“A1”中的超链接。

备注:

  • 最近,Google 电子表格必须能够在一个单元格中包含多个超链接。但不幸的是,在目前阶段,似乎无法使用 Sheets API 检索这些链接。我相信这会在未来的更新中得到解决。
  • 所以,在这个示例脚本中,当一个单元格中设置了一个超链接时,这个脚本可以检索超链接。所以请小心这一点。

引用:

关于python - 从 Google 电子表格 (gspread) 中的单元格获取 href 标签内的链接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62780104/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com