首页 > 解决方案 > 如何使用 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

任何帮助表示赞赏。谢谢。

标签: pythongoogle-docsgoogle-docs-api

解决方案


我相信你的目标和你目前的情况如下。

  • 您要检索HEADING_2段落样式的文本。
  • 您想使用 googleapis for python 来实现这一点。
  • 您想使用问题中的脚本来实现目标。
  • 您已经使用 Docs API 从 Google Document 获取值。

修改点:

  • 在这种情况下,我认为当值为namedStyleTypeisHEADING_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')

参考:


推荐阅读