python - 如何使用 API 从 Google 文档中提取标题
问题描述
目前正在尝试创建一个 python 脚本来检查谷歌文档中的各种 SEO 页面指标。
google docs API 有一个很好的示例,展示了如何从 google 文档中提取所有文本。但是,这只是返回没有格式的纯文本。
要执行我的检查,我需要能够拆分出 H1、H2-H4、粗体文本等,但是经过两个小时的游戏/搜索 API 文档/网络后,我无法弄清楚如何编辑以下内容循环以能够获取(例如)所有 HEADING_2 元素。
text = ''
for value in elements:
if 'paragraph' in value:
elements = value.get('paragraph').get('elements')
for elem in elements:
text += read_paragraph_element(elem)
elif 'table' in value:
# The text in table cells are in nested Structural Elements and tables may be
# nested.
table = value.get('table')
for row in table.get('tableRows'):
cells = row.get('tableCells')
for cell in cells:
text += read_strucutural_elements(cell.get('content'))
elif 'tableOfContents' in value:
# The text in the TOC is also in a Structural Element.
toc = value.get('tableOfContents')
text += read_strucutural_elements(toc.get('content'))
return text
任何帮助表示赞赏。谢谢。
解决方案
我相信你的目标和你目前的情况如下。
- 您要检索
HEADING_2
段落样式的文本。 - 您想使用 googleapis for python 来实现这一点。
- 您想使用问题中的脚本来实现目标。
- 您已经使用 Docs API 从 Google Document 获取值。
修改点:
- 在这种情况下,我认为当值为
namedStyleType
isHEADING_2
时,需要检索文本。
当这一点反映到您的脚本中时,它变成如下。
修改后的脚本:
从:for value in elements:
if 'paragraph' in value:
elements = value.get('paragraph').get('elements')
到:
for value in elements:
if 'paragraph' in value and value['paragraph']['paragraphStyle']['namedStyleType'] == 'HEADING_2': # Modified
elements = value.get('paragraph').get('elements')
参考:
推荐阅读
- node.js - 使用 NodeJS(服务器端)从另一个账户访问 AWS Cognito 池
- api - 用于 Visual Studio 代码的 API
- applescript - 更改文件在 Finder 中的排序方式
- reactjs - 如何从反应组件向后端发送 fetch post 请求
- laravel - 如何从子查询中获取列?
- python - 消息阅读脚本显示机器人自己的消息并永远循环
- c# - Array.Clear(new [] {1,2,3}, 0, 2) 输出 [1,z2,z3]
- cassandra - 任何用于 cassandra system.log 的 UI 日志监控工具?
- python-3.x - Tensorflow 不会在同一个图中共享变量
- android - Caldroidlistener 在 Kotlin 下不起作用