我正在尝试在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)没有完全加载。我甚至可以看到“ajaxLoading”div在响应的ContentText中可见。
对此有什么解决办法吗?
答案 0 :(得分:0)
解决:我上面示例中的dataurl正在使用我的参数并发布到一个完全不同的URL,我能够直接调用该URL来获取我之后的数据。