【问题标题】:Google Apps Script UrlFetchApp and Ajax DataGoogle Apps 脚本 UrlFetchApp 和 Ajax 数据
【发布时间】: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


【解决方案1】:

已解决:我上面示例中的 dataurl 正在获取我的参数并发布到一个完全不同的 url,我能够直接调用该 url 来获取我所追求的数据。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-11-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-04-07
    • 2020-08-31
    相关资源
    最近更新 更多