【发布时间】:2018-02-15 05:40:58
【问题描述】:
我正在尝试在 Google Apps 脚本中获取登录后的数据。我下面的代码可以正常工作,并且可以毫无问题地获取登录和数据页面(登录后)。
function fetch() {
var loginurl = "https://somedomain.com/login";
var dataurl = "https://somedomain.com/orders#status=0&p=1&per=100";
var params = {
"method": "post",
"payload": {
"UserName": "myusername",
"Password": "mypassword",
"action": "Log In",
"testcookie": 1
},
"followRedirects": false
};
var response = UrlFetchApp.fetch(loginurl, params);
if (response.getResponseCode() == 302) {
var headers = response.getAllHeaders();
var cookies = typeof headers['Set-Cookie'] == 'string' ? [ headers['Set-Cookie'] ] : headers['Set-Cookie'];
for (var i = 0; i < cookies.length; i++) {
cookies[i] = cookies[i].split(';')[0];
};
params = {"method": "get","headers": {"Cookie": cookies.join(';')}};
response = UrlFetchApp.fetch(dataurl, params);
Logger.log(response.getContentText());
} else {
Logger.log(getResponseCode());
}
}
我的问题是数据页面的获取响应不包括我需要的实际数据,因为当响应被发回时,它没有被网站 (ajax) 完全加载。我什至可以在响应的 ContentText 中看到“ajaxLoading”div。
有什么办法可以解决这个问题吗?
【问题讨论】:
-
你要web scrape吗?
-
是的,但设法解决了。
标签: ajax google-apps-script urlfetch