gpt4 book ai didi

javascript - 使用 GAS : Error - Argument too large:value 进行巨大的网站抓取/爬行

转载 作者:行者123 更新时间:2023-11-28 07:25:03 30 4
gpt4 key购买 nike

我做了一个抓取脚本,通过爬行逐一抓取任何网站(要输入的url)的内部页面,获取其他内部url并处理它们以获取所有页面并提取其纯文本(剥离的html)。请参阅my previous回答。该脚本运行良好,当其运行时间接近一定限制时,我设法自动停止它,并且我还通过时间触发器重新启动它以继续抓取执行。

作为一些持久数据,我使用ScriptCacheScriptProperties(用于小值变量)。

  • 在按时间限制停止脚本之前,我会将尚未处理链接和已处理链接保存在ScriptCache中。为此,我将 join() 链接数组放入字符串变量中:scriptCache.put('processed_urls',processed_urls.join(','))
  • 当我重新启动脚本以进行后续运行时,我会从 ScriptCache 检索尚未处理链接和已处理链接。在这里,我宁愿 split() 将字符串缓存到数组中: processed_urls = scriptCache.get('processed_urls').split(',')

链接数量可能太大导致脚本失败的问题,表明值太大。错误详细信息(来自自动电子邮件):

Start      Function     Error Message                Trigger            End
4/20/15
12:57 PM scrape Argument too large:value
(line 139, file "Code") time-based 4/20/15 12:57PM

这一行:joined_links = links.join(',');

Argument too large: value (line 139, file "Code")

由于站点链接数量巨大,将数组转换为字符串以获取以下字符串具有投标值(value)...当字符串值真正超过25K时,就会发生这种情况。

什么是出路?

此外,当谷歌文档太大时,我将抓取的文本放在其中,与...交互的速度很慢?

最佳答案

脚本缓存(和属性)已达到您的限制。而是将您的待处理链接列表存储为电子表格行(甚至单个单元格)。您还可以将数据分散到更多缓存条目中,但也可以达到您可以达到的总数。要轻松传播它,只需将缓存值命名为“c1”“c2”等,直到找不到更多值为止。

关于javascript - 使用 GAS : Error - Argument too large:value 进行巨大的网站抓取/爬行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29772171/

30 4 0
文章推荐: c++ - 打印直方图 C++
文章推荐: html - Tumblr 自定义视频缩略图。将自定义 CSS 定位到特定的永久链接
文章推荐: html - 我应该将以前创建的 HTML 文件放在 Rails 应用程序的什么位置?
文章推荐: javascript - 如何将