[英]Google Apps Script: 403 error for UrlFetchApp
我正在使用谷歌应用脚本
var rss = "https://www.sec.gov/cgi-bin/browse-edgar?action=getcurrent&CIK=&type=8-k&company=&dateb=&owner=exclude&start=0&count=100&output=atom"
var r = UrlFetchApp.fetch(rss).getContentText()
但是有一段时间,我执行失败,这就是响应。 这是大约一半的时间。
Exception: Request failed for https://www.sec.gov returned code 403. Truncated server response: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w... (use muteHttpExceptions option to examine full response)
不知道为什么会发生以及如何解决它。
尽管不幸的是,我无法复制您的情况, but once a while, I get a failed execution and this is the response.
,例如,如何重试请求如下?
var res = null;
var maxRetries = 5;
var rss = "https://www.sec.gov/cgi-bin/browse-edgar?action=getcurrent&CIK=&type=8-k&company=&dateb=&owner=exclude&start=0&count=100&output=atom";
for (var i = 0; i < maxRetries; i++) {
res = UrlFetchApp.fetch(rss, {muteHttpExceptions: true});
if (res.getResponseCode() == 200) break;
res = null;
Utilities.sleep(5000);
}
if (!res) throw new Error("Values cannot be retrieved.");
// do something.
var value = res.getContentText();
200
时,5 秒后重试请求。 最大重试次数为 5 次。maxRetries
和Utilities.sleep(5000)
。当您的请求率超过“合理使用”定义(目前为每秒 10 个请求)时,可能会发生这种情况。
https://www.sec.gov/os/accessing-edgar-data
您可以通过检查响应正文来确认是否是这种情况。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.