Google apps script GoogleSpreadsheets UrlFetchApp.fetch在获取数据时遇到问题

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

我正在尝试使用这里找到的方法从雅虎获取股票数据,在任何股票URL上使用UrlFetchApp.fetch时,大多数情况下都会失败。请注意,如果我通过浏览器导航到同一个url,该url将非常有效

代码

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%的时间里工作,它都是有效的。