使用 Python 抓取公开 Google 文档内容指南

评论: 0

如今,信息传播速度惊人,许多文件都存储在 Google 文档中。因此,Google Docs 数据搜索的确是节省大量时间和精力的好方法。

在本文中,我们将研究有助于自动化这一过程的方法。我们将使用 Python 搜索 google 文档,并将这些文件保存为 JSON 格式,这是一种常见的数据存储格式。

为什么要搜索 Google 文档?

自动检索公共文件中存储的数据有多种用途。它有助于自动收集信息,无需任何人工干预。这对以下方面非常有用

  • 研究项目;
  • 监测任务;
  • 创建私人数据库。

用 Python 搜刮 Google 文档对于分析此类文件的内容也很有用。这使得该服务成为接收准确而深入的信息的绝佳资源,这些信息随后将通过报告或训练机器学习系统进行处理。

谷歌文档抓取的关键工具和库

要有效地执行 Google 文档数据搜刮,您需要选择合适的 Python 工具来完成这项任务。其中一些库如下:

  • Requests 是一个用于执行 HTTP 相关活动的基本库。它允许用户下载和提取 HTML 内容。
  • BeautifulSoup 是一款高效的 HTML 内容解析处理工具。使用 BeautifulSoup,可以轻松地从文件中获取所需的文本或元素部分。
  • Google Docs API 提供了一种以编程方式处理文件的方法。它允许访问文档组件,如标题、章节、样式等。

在这些工具中做出选择,取决于您的目标是读取文件,还是希望使用结构化数据 API 调用执行高级交互。

为 Google 文档网络抓取设置环境

现在,我想让大家看看如何建立工作环境和完成概述的流程。

步骤 1:准备 Python 环境

确保已安装 python。下一步

  • 设置并启动虚拟环境:
    
    python -m venv myenv
    myenv\Scripts\activate
    source myenv/bin/activate
    
  • 安装所有需要的依赖项:
    
    pip install requests beautifulsoup4 google-api-python-client gspread google-auth
    

步骤 2:获取公共 Google 文档的访问权限

打开相关文件。文件应已公开授权。请按照以下步骤操作:

  1. 打开文件。
  2. 在顶栏点击 "文件"→"共享"→"发布到网络",也可以 "共享 "并设置为 "有链接的任何人都可以查看"。

否则,您的脚本将返回访问错误。

步骤 3:探索 Google 文档 URL 的结构

文件一经发布,其 URL 就会采用以下格式:


https://docs.google.com/document/d/1AbCdEfGhIjKlMnOpQrStUvWxYz/view

1AbCdEfGhIjKlMnOpQrStUvWxYz - 文件 ID。这就是您使用 API 或 HTML 搜刮访问文件的方式。

步骤 4:为 Google 文档数据搜刮选择正确的方法

以下是从此类文档中提取信息的两种主要方法:

  • HTML 搜刮。如果文件已作为网页发布,则可以使用请求访问,并使用 BeautifulSoup 进行解析。
  • 谷歌文档 API。如果要对未格式化的数据进行结构化处理,则应使用该 API,因为它不需要使用 HTML。

在不太复杂的情况下,使用 HTML 就足够了,而在较复杂的情况下,则需要使用应用程序接口。

步骤 5:解析已发布 Google 文档的 HTML 内容

当文件作为网页发布时,可以检索其 HTML,然后对其进行解析,以获取相关信息:


import requests
from bs4 import BeautifulSoup

url = 'https://docs.google.com/document/d/YOUR_ID/pub'

response = requests.get(url)
if response.status_code == 200:
    soup = BeautifulSoup(response.text, 'html.parser')

    # 提取页面上的所有文本
    text = soup.get_text()
    print(text)
else:
    print(f'Access error: {response.status_code}')

下面是工作算法:

  • 例如,我们使用 requests 对文档 URL 执行 HTTP 获取请求。
  • 然后用 BeautifulSoup 解析网页。
  • 然后清理内容,提取相关的纯文本。

步骤 6:使用 Google 文档 API 提取数据

如果需要更精确的信息,最合适的方法是通过公司发布的处理程序和文件,从而使用 Google Docs API。

启动步骤:

在云控制台中创建项目

  1. 访问 Google 云控制台
  2. 创建新项目。
  3. 在 "API 与服务 "部分,启用 Google Docs API。
  4. 创建证书:
    • 选择 "服务帐户"。
    • 保存生成的 JSON 文件,您将在代码中用到它。

连接 Google 文档 API 并检索文档

看起来是这样的


from google.oauth2 import service_account
from googleapiclient.discovery import build

# 服务帐户 JSON 文件的路径
SERVICE_ACCOUNT_FILE = 'path/to/your/service_account.json'

# 您的文件 ID
DOCUMENT_ID = 'YOUR_ID'

# 访问配置
credentials = service_account.Credentials.from_service_account_file(
    SERVICE_ACCOUNT_FILE,
    scopes=['https://www.googleapis.com/zh/auth/documents.readonly']
)

service = build('docs', 'v1', credentials=credentials)

# 读取文件内容
document = service.documents().get(documentId=DOCUMENT_ID).execute()

# 打印文件标题
print('Document title: {}'.format(document.get('title')))

步骤 7:存储和分析抓取的数据

在获取数据时,有必要对其进行有效存储,以便日后检索。

保存为 JSON:


import json

# 假设变量 `data` 包含提取的内容
with open('output.json', 'w', encoding='utf-8') as f:
    json.dump(data, f, ensure_ascii=False, indent=4)

此后,您可以根据自己的要求分析或更改数据。

步骤 8:自动收集数据

设置自动更新比自己执行脚本更好。

下面是一个自动化脚本示例:


import time

def main():
    # 您提取和保存数据的代码
    print("Data harvesting...")

# 每 6 小时运行一次
while True:
    main()
    time.sleep(6 * 60 * 60)

挑战与伦理考虑

虽然 Google Docs 数据刮擦看起来简单明了,但具体挑战包括:

  • 访问限制--标记为 "公开 "的文件可能不允许对各种设置进行完全无障碍的访问。
  • HTML 结构的变化--它可以随时改变后端代码。今天的功能明天可能就不再有效。
  • 更新具有挑战性--如果文档经常更新,应确定如何最有效地获取数据。

最后,当然也是最重要的是道德:

  • 不得违反版权或隐私准则。
  • 确保收集的数据来自公开性质的文件。
  • 切勿无视服务的使用条款,因为这些条款可能会导致对您的封禁或法律诉讼。

结论

我们已经深入研究了使用 Python 进行 Google 文档数据搜刮。您的项目的复杂程度将决定您是选择 HTML 搜刮还是 Google Docs API。在处理公共文档时,最好谨慎行事,并考虑网络搜刮的法律后果

这种刮擦提供了巨大的可能性,例如进行研究、监控变化和开发专业服务。有了这些知识,您就可以使用 Python 无缝地自动执行公共 Google 文档刮擦,并简化重复性任务的自动化。

评论:

0 评论