如何用Python脚本从终端导出Google Drive非公开文档为HTML格式
解决方案:用Python从Google Drive下载非公开Google文档为HTML格式
嘿,我刚好解决过一模一样的问题!PyDrive确实没提供直接导出HTML的选项,不过用Google官方的API客户端库就能搞定,步骤很清晰,我给你拆解一下:
1. 前期准备工作
- 先去Google Cloud控制台创建一个新项目,找到并启用Google Drive API
- 创建一个服务账号,下载对应的密钥JSON文件(建议命名为
credentials.json,方便后续调用) - 打开你要导出的Google文档,点击右上角「共享」,把服务账号的邮箱(在密钥JSON的
client_email字段里能找到)添加为文档的查看者——这一步很重要,不然脚本会没权限访问文档
2. 安装必要的Python库
在终端运行这条命令安装依赖:
pip install google-api-python-client google-auth-httplib2 google-auth-oauthlib
3. 编写Python脚本
下面是完整的可运行脚本,你只需要替换几个参数就行:
from google.oauth2 import service_account from googleapiclient.discovery import build import requests # 配置参数,根据你的情况修改 DOCUMENT_ID = "你的Google文档ID" # 从文档URL里取,比如https://docs.google.com/document/d/XXX/edit里的XXX OUTPUT_PATH = "document.html" # 导出后保存的HTML文件路径 CREDENTIALS_PATH = "credentials.json" # 你的服务账号密钥文件路径 # 完成认证,构建Drive服务实例 SCOPES = ["https://www.googleapis.com/auth/drive.readonly"] credentials = service_account.Credentials.from_service_account_file( CREDENTIALS_PATH, scopes=SCOPES ) drive_service = build("drive", "v3", credentials=credentials) # 获取文档的HTML导出链接 file_info = drive_service.files().get(fileId=DOCUMENT_ID, fields="exportLinks").execute() html_export_url = file_info["exportLinks"]["text/html"] # 发起请求下载HTML内容 response = requests.get( html_export_url, headers={"Authorization": f"Bearer {credentials.token}"} ) response.raise_for_status() # 如果请求失败,直接抛出异常提示 # 把内容写入本地文件 with open(OUTPUT_PATH, "w", encoding="utf-8") as f: f.write(response.text) print(f"搞定!文档已导出为HTML,保存路径:{OUTPUT_PATH}")
4. 关键细节说明
- 文档ID怎么找:打开你的Google文档,URL里
d/和/edit中间的那串字符就是文档ID,复制过来就行 - 导出格式支持:除了HTML,Google Drive API还支持导出PDF、DOCX等格式,只要把
text/html换成对应的MIME类型(比如application/pdf对应PDF)就行 - 权限排查:如果运行时提示权限不足,先检查服务账号邮箱有没有被添加为文档的查看者,再确认密钥文件路径是否正确
5. 运行脚本
在终端切换到脚本所在的目录,运行:
python download_docs_html.py
等脚本跑完,你就能在指定路径看到导出的HTML文件了,亲测有效,完全适配现在的Google API版本~
内容的提问来源于stack exchange,提问作者Roberto Arista
相关产品推荐
相关产品推荐

