google-apps-script - 从 Appscript 中的另一个 url 获取数据
问题描述
我正在尝试从网站上抓取数据。获取产品信息的请求 url正确显示在浏览器中。但没有得到UrlFetchApp
. 我的代码如下
function myFunction() {
var coles_url = "https://shop.coles.com.au/search/resources/store/20520/productview/bySeoUrlKeyword/mutti-tomato-passata-2349503p?catalogId=12064";
Logger.log(jsonInitColes(coles_url));
}
function jsonInitColes(url){
var options =
{
"method" : "GET",
"followRedirects" : true,
"muteHttpExceptions": true
};
var response = UrlFetchApp.fetch(url,options);
var content = response.getContentText();
return content;
}
但是我得到了以下 HTML 而不是数据 status_code 是 429(请求太多)
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<link rel="shortcut icon" href="about:blank">
</head>
<body>
<script src="/149e9513-01fa-4fb0-aad4-566afd725d1b/2d206a39-8ed7-437e-a3be-862e0f06eea3/j.js"></script>
<script src="/149e9513-01fa-4fb0-aad4-566afd725d1b/2d206a39-8ed7-437e-a3be-862e0f06eea3/f.js"></script>
<script src="/149e9513-01fa-4fb0-aad4-566afd725d1b/2d206a39-8ed7-437e-a3be-862e0f06eea3/fingerprint/script/kpf.js?url=/149e9513-01fa-4fb0-aad4-566afd725d1b/2d206a39-8ed7-437e-a3be-862e0f06eea3/fingerprint&token=c3436f36-e3c3-a537-25f3-bedc8592f189"></script>
</body>
</html>
解决方案
回答:
你对此无能为力。
更多信息:
Google Apps 脚本在云中运行,因此您的获取将来自一些未指定的 Google IP。
想象一下有多少用户在使用 Google Apps 脚本。在这些用户中,有多少人试图从相同的站点和服务器获取信息。在使用不需要身份验证的外部端点时,这Too many Requests
是一个不幸的常见错误UrlFetchApp
如果您遇到Too many requests
错误并且没有进行快速重试,则可能是来自云中所有其他 Apps Script 脚本的请求太多,向同一服务器发出请求。你对此无能为力。
推荐阅读
- git - 多个 Visual Studio 存储库的相同标记
- iis - 负载平衡时如何检测 IIS 故障
- python - 在生产服务器上工作的端口值应该是多少?
- javascript - innerHTML 没有设置 SVG 元素的值
- multithreading - 每个请求的 Asp.Net Core 异步延迟初始化
- javascript - React js-显示状态值取决于 redux props 值
- haskell - 用 ghci 调查 (->) 并试图找到它的根源
- java - 在 Java 中从 XML 中检索数据并在 Oracle 中插入数据
- c# - 自动完成 lambda 表达式(当它使用类似函数参数时)(C#,Visual Studio 2019)
- google-chrome-extension - 如何在 chrome 扩展中将 mHTML 转换为 pdf?