如何在谷歌应用程序脚本中创建文档片段



我正在使用Google应用程序脚本在Google Sheets中创建一个应用程序。该应用程序抓取一个网页,并将一个HTML页面作为字符串返回给我。我正试图将它插入到DOM中,以便使用DOM查询在页面中查找所需的数据。通常,您可以使用document.createDocumentFragment()创建一个文档片段,或者使用document.createElement()创建一个分离的元素,然后使用HTML字符串设置innerHTML。问题是,GAS没有document上下文。

有人有解决方法的想法吗?或者有其他方法来查询一个大的文本字符串吗?

p.s.我的第一反应是找到我作为API所需要的数据,但我找不到任何满足我需求的数据。刮屏是我最后的手段。

更新:感谢所有发现并标记类似问题的人。GS的Cheerio库是正确的解决方案。https://stackoverflow.com/a/61928025/735374

您不能在Google Apps脚本中创建DOM,至少不能在服务器端代码中创建DOM。

为了查询HTML字符串,您需要知道所需的数据在页面中的确切位置,其中包含可识别的子字符串,例如包含元素ID,但这些子字符串通常是生成的,因此不知道。众所周知,RegEx也无法解析HTML。

如果不需要在无人参与的情况下运行脚本,则可以作为Sheets附加组件来执行此操作。在这种情况下,工作流程将沿着以下路线:

  • 将HTML数据作为字符串抓取
  • 使用createHtmlOutput(html)方法创建HTMLOutput对象
  • 将HTML作为对话框或侧边栏打开,并在对话框中执行querySelector调用。(在这种情况下,您必须将这些作为代码添加到加载页面时运行的<script>标记中
  • 使用google.script.run将值返回到Google Apps脚本

最新更新