Google apps script GoogleSpreadsheets UrlFetchApp.fetch在获取数据时遇到问题
我正在尝试使用这里找到的方法从雅虎获取股票数据,在任何股票URL上使用UrlFetchApp.fetch时,大多数情况下都会失败。请注意,如果我通过浏览器导航到同一个url,该url将非常有效 代码Google apps script GoogleSpreadsheets UrlFetchApp.fetch在获取数据时遇到问题,google-apps-script,google-spreadsheet-api,Google Apps Script,Google Spreadsheet Api,我正在尝试使用这里找到的方法从雅虎获取股票数据,在任何股票URL上使用UrlFetchApp.fetch时,大多数情况下都会失败。请注意,如果我通过浏览器导航到同一个url,该url将非常有效 代码 var resp = UrlFetchApp.fetch("http://finance.yahoo.com/d/quotes.csv?s=" + securityName + "&f=sl1d1t1c1ohgv&e=.csv"); 其中securityName是股票符号,如AAP
var resp = UrlFetchApp.fetch("http://finance.yahoo.com/d/quotes.csv?s=" + securityName + "&f=sl1d1t1c1ohgv&e=.csv");
其中securityName是股票符号,如AAPL或MSFT。通常错误是地址不可用。当我通过浏览器导航到它时,它总是起作用。错误与yahoo站点有关。 我通过javascript进行了测试,遇到了同样的问题。 如果您想测试access download.finance.yahoo.com并通过F12打开chrome控制台,然后将代码放在下面:
function test() {
for(var x = 0; x < 100; x++) {
var req = new XMLHttpRequest();
req.open("GET", "http://download.finance.yahoo.com/d/quotes.csv?s=AAPL&f=sl1d1t1c1ohgv&e=.csv", false);
req.send();
if(req.status != 200) {
console.log("ERROR"); return;
}else {
console.log("OK");
}
}
}
test();
功能测试(){
对于(变量x=0;x<100;x++){
var req=新的XMLHttpRequest();
请求打开(“获取”http://download.finance.yahoo.com/d/quotes.csv?s=AAPL&f=sl1d1t1c1ohgv&e=.csv“,假);
请求发送();
如果(请求状态!=200){
console.log(“错误”);返回;
}否则{
控制台日志(“OK”);
}
}
}
test();
在我的例子中检查一下,它工作了8次(8次正常),但在第9次尝试中失败了。
我几个月来一直在使用同一个脚本,错误直到最近才开始出现,看起来像是雅虎!搞砸了。同样的结果,我实际上是事先使用了那个URL,发现其他人正在使用我在回复中列出的URL。你是对的,不是一直都在工作,但问题与雅虎网站有关。是的,我就是这么想的,这很不幸。我想,在获取这些数据方面,我应该寻找一个比使用雅虎更好的解决方案。我的“解决方案”是让我的代码不断地重新尝试,直到它返回正确的数据。我只是在错误上重新尝试的方法一直在为我工作。无论雅虎是否在100%的时间里工作,它都是有效的。