尝试使用Google Apps脚本从网站获取数据,以将其直接放入电子表格中。提取似乎无效,在Python请求等效的地方效果很好。
Python代码:
page = requests.get("someurl?as_data_structure", headers={'user-agent':'testagent'})
GAS代码:
var page = UrlFetchApp.fetch("someurl?as_data_structure", headers={'user-agent':'testagent'});
唯一需要的标头是用户代理,如果没有包含标头,我从GAS代码中得到的错误通常就是从Python代码中获得的错误。我是JS新手,但据我所知这是正确的方法。
编辑: 现在将标题放置在正确的位置,但问题仍然存在,与以前完全一样的错误。
var options = {"headers": {"User-Agent": "testagent"}};
var page = UrlFetchApp.fetch("someurl?as_data_structure", options);
答案 0 :(得分:1)
Google并不总是显示其限制(讨厌吗?)。这样的限制之一就是更改用户代理。它固定为
addRequestHandlers
您无法更改。
"User-Agent": "Mozilla/5.0 (compatible; Google-Apps-Script)"
function testUrlFetchAppHeaders() {
var options = {
headers: {
'User-Agent':
'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/51.0.2704.103 Safari/537.36',
},
};
var fakeRequest = UrlFetchApp.getRequest(
'https://www.httpbin.org/headers',
options
);//providing fake assurance
var realRequest = UrlFetchApp.fetch(
'https://www.httpbin.org/headers',
options
);//like a wrecking ball
Logger.log({ fake: fakeRequest, real: realRequest });
}
getRequest(url)
返回调用该操作后将发出的请求。
此方法实际上并不发出请求。
它也不准确地返回将要发出的请求。
答案 1 :(得分:0)
headers
属于选项:
var options = {"headers": {"User-Agent": "testagent"}};
var page = UrlFetchApp.fetch("someurl?as_data_structure", options);