使用 Google-apps-script 从 Google 搜索中抓取错误 429
Error 429 on scraping from Google search with Google-apps-script
我想获取特定域的索引页数。因此我想使用“site:”参数并从搜索结果页面中提取结果数。
我用 Google-apps-script 尝试了 Google 个电子表格:
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 - 请求过多。我集成了 5000ms 的休眠时间,但是 Google 搜索仍然 returns 错误 429.
我只需要 Google 的搜索结果中某些网址的页数。也许有更好的方法 - 我不能为此使用搜索-api,因为这些页面不是我的 GSC 的一部分。
很可能 Google 搜索将来自 UrlFetch
的请求视为自动流量并因此阻止它们。来自 the official docs:
What Google considers automated traffic
- Sending searches from a robot, computer program, automated service, or search scraper
例如,使用 wget
或 curl
等工具时会发生相同的行为。
建议使用 Search API。
相关:
我想获取特定域的索引页数。因此我想使用“site:”参数并从搜索结果页面中提取结果数。
我用 Google-apps-script 尝试了 Google 个电子表格:
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 - 请求过多。我集成了 5000ms 的休眠时间,但是 Google 搜索仍然 returns 错误 429.
我只需要 Google 的搜索结果中某些网址的页数。也许有更好的方法 - 我不能为此使用搜索-api,因为这些页面不是我的 GSC 的一部分。
很可能 Google 搜索将来自 UrlFetch
的请求视为自动流量并因此阻止它们。来自 the official docs:
What Google considers automated traffic
- Sending searches from a robot, computer program, automated service, or search scraper
例如,使用 wget
或 curl
等工具时会发生相同的行为。
建议使用 Search API。