微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

使用 Google-apps-script 从 Google 搜索中抓取时出现错误 429 Google 认为什么是自动流量相关:

如何解决使用 Google-apps-script 从 Google 搜索中抓取时出现错误 429 Google 认为什么是自动流量相关:

我想获取某些域的索引页数。因此我想使用“site:”参数并从搜索结果页面提取结果数量

我使用 Google 电子表格的 Google-apps-script 进行了尝试:

function sampleFormula_4() {
  const url = "https://www.google.com/search?q=site%3Abenedikt-sahlmueller.de";
  
  try {
    const html = UrlFetchApp.fetch(url).getContentText();
    return html.match(/<div id="result-stats">(.+?)nobr>/)[1].trim();

  } catch (e) {
    Utilities.sleep(5000);
    const html = UrlFetchApp.fetch(url).getContentText();
    return html.match(/<div id="result-stats">(.+?)nobr>/)[1].trim();
  }
}

Google 电子表格显示错误 429 - 请求过多。我集成了 5000 毫秒的睡眠时间,但 Google 搜索仍然返回错误 429。

我需要的只是 Google 搜索结果中某些网址的页数。也许有更好的方法 - 我不能为此使用 search-api,因为这些页面不是我的 GSC 的一部分。

解决方法

很可能 Google 搜索将来自 UrlFetch 的请求视为自动流量并因此阻止它们。来自the official docs

Google 认为什么是自动流量

  • 从机器人、计算机程序、自动化服务或搜索抓取工具发送搜索

例如,使用 wgetcurl 等工具时会发生相同的行为。

建议使用 Search API

相关:

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。