此文档需要在 Google 个工作表中分配 'TrustedScriptURL' 个

This document requires 'TrustedScriptURL' assignment in Google Sheets

我有一个 Google Spreadsheet,其中我有关于 sheet 中特定单元格的以下信息:

这里是 link of the Google spreadsheet - 如果你想从你身边测试。

这是 Google Spreadsheet I'm working on - 我想获取具体数据:

  1. 标题:文本(在结果项h3HTML标签中)。
  2. Url: Link (在结果项的<a> HTML标签中)
  3. 说明:结果项缩略图旁边的文本。

查看包含数据的屏幕截图以获取使用 IMPORTXML:

前面的代码returns给定URL的title - 在这种情况下,URL存储在B1 单元格。

它一直没有问题(自 12/02/2022 - dd/MM/yyyy)直到今天(13/02/2022 - dd/mm/yyyy).

我检查了 Chrome 控制台“F12 Developer tools”,我得到了这个错误:

This document requires 'TrustedScript' assignment.

injectIntoContentWindow @ VM364:27

点击@VM364:27行,显示如下代码:

  function injectIntoContentWindow(contentWindow)
  {
    if (contentWindow && !injectedFramesHas(contentWindow))
    {
      injectedFramesAdd(contentWindow);
      try
      {
        contentWindow[eventName] = checkRequest;
        contentWindow.eval( /* ERROR with and (X) is shown here. */
          "(" + injectedToString() + ")('" + eventName + "', true);"
        );
        delete contentWindow[eventName];
      }
      catch (e) {}
    }
  }

在网上搜索,我几乎找不到这个错误的原因:

我试过:

我认为的另一个可能原因是我的 IP 被列入黑名单或被阻止,但我不确定。

我的浏览器信息:

有什么方法可以解决 Google 表格中的这个错误吗?

PS:我有兴趣了解使用 google sheets and/or 自定义脚本的解决方法 - 通过 script editor/Apps 剧本IMPORTXML 功能的使用不是强制性的 - 我很好奇它曾经工作,然后今天,不再工作了。

我就把这个留在这里:

=INDEX(UNIQUE(REGEXREPLACE(QUERY(IMPORTXML(A1, "//a/@href"), 
 "where Col1 contains 'youtube.com/'"), "\/url\?q=|&sa=.*", )))

=IMPORTXML(A1, "//title")

=IMPORTXML(A1, "//h3")

TL;DR: This document requires 'TrustedScript' assignment错误不是IMPORTXML延迟的根本原因功能 - 可能还有其他原因( 开发人员处理之外 ),但毕竟代码有效 - see working google spreadsheet - 只是,等到结果显示或使用其他方式 web-scrapping 所需数据。


由于 This document requires 'TrustedScript' assignment 消息一直出现在浏览器的控制台中,但是,我在问题上发布的代码([=45 发布的代码=]) 有效,在我看来,使用 IMPORTXML 的响应延迟可能 是由于其错误的功能 and/or 检测到某些限制 Google通过执行多个请求。

所以,这是我的提示:

  • 执行过多请求之前,请仔细检查从中提取数据的页面及其结构 - 否则您可能会面临IMPORTXML 功能的响应明显延迟 - 正如我所经历的那样。
  • 更加熟悉 XPath 并检查数据是否在页面中动态生成 - 这使得使用这种抓取方式更难获得所需的数据。

This is the spreadsheet with the desired results - 如果有人感兴趣1.

1勾选“Results-mix”sheet(其中包含我设法创建的代码和由player0 在他们的回答中 ).

如果您真的想以一种不太复杂的方式获得类似的结果,请考虑对 web-scrapping 使用其他策略或使用官方 API - 如果可用。