使用Python从公共谷歌文档中解析表数据

问题描述 投票:0回答:1

我有一个已发布的公共谷歌文档的网址(顶部写着使用谷歌文档发布)。它的 URL 格式为 https://docs.google.com/document/d/e//pub

请注意,这不是电子表格(Google 表格),而是文档。该文档在开头包含一些解释性文本,然后是我需要阅读的表格。如何使用 Python 且仅使用 URL 来完成此操作?我对 Google API 等了解不多。我不需要开头的文本,而只需要某种流行格式的表数据,例如 Pandas 数据框等。表数据也可以包含 Unicode 字符。

我尝试按照 Docs API 快速入门指南 (https://developers.google.com/docs/api/quickstart/python) 中的一些步骤进行操作。在我按照说明操作后,给定的代码(按原样复制粘贴)起作用了。尽管如此,它仍然涉及创建新的 Google 项目、启用 API、配置 OAuth 屏幕以及为桌面应用程序授权凭据的一些步骤。但是,当我替换示例文档 ID 时 (引号内的字符串

DOCUMENT_ID =“195j9eDD3ccgjQRttHhJPymLJUCOUjs-jmwTrekvdjFE”)

使用我需要访问的文档的ID,我收到此错误:

https://docs.googleapis.com/v1/documents/?alt=json 返回“找不到请求的实体。”。详细信息:“未找到请求的实体。”>

我只想要一个简单的解决方案,仅使用已发布文档的 URL,因为该文档已经公开。我不想执行一些身份验证步骤。我需要即使我将代码发送给其他人,他们也可以运行相同的代码并获得相同的结果,而不会出现任何身份验证问题。请帮我解决这个问题。

python google-api google-docs google-api-python-client google-docs-api
1个回答
0
投票

我也面临着同样的问题。我猜你和我可能正在做同样的应用挑战!

使用

requests
,我能够从调用页面中获取原始 HTML 响应,然后使用
BeautifulSoup
,我能够将其转换为可用的、可解析的对象:

# Make request
html_response = requests.get(url=url)

# Parse html into a BeautifulSoup object
soup = BeautifulSoup(html_response.text, 'html.parser')

# Collect and return the first table (assuming the first table is what you want)
return soup.find('table')

从那里,您可以更精确地解析表格以提取您想要的数据。以下是一些如何使用 BeautifulSoup 表来获得所需内容的示例:

我不会复制粘贴我的确切解决方案,因为我知道其他人会使用它来填写相同的工作申请挑战,但只要您有 Python 基础,这就能为您提供所需的一切。

© www.soinside.com 2019 - 2024. All rights reserved.