使用 urlFetchApp 登录后如何获取源代码?

How can i get the source code after logging in with urlFetchApp?

我卡住了。我可以登录该网站,现在登录后,我想获取 url2 的源代码。有什么想法我可以在这里继续吗?

function login() {

 var url = "https://www.erevollution.com/en/login"; 
  var payload = {
    "email":"test@gmail.com", 
    "password":"testpassword",
    "remember":"on"
  }; 

  var options = {
    "payload":payload,
    "method":"post",
    "followRedirects" : false
  };

  var response = UrlFetchApp.fetch(url, options);
  if ( response.getResponseCode() == 200 ) {                                             //could not log in.
    var result = "Couldn't login. Username/password is incorrect.";
  } 
  else if ( response.getResponseCode() == 302 ) {                                        //login was successful
     var result = "Logged in successfully";

     var cookie = response.getAllHeaders()['Set-Cookie'];     
     var header = { "Cookie":cookie[0] };
     var options2 = { "headers": header };
     var url2 = "https://www.erevollution.com/tr/market/1/1/1/1";
     var response2 = UrlFetchApp.fetch(url2, options2);   
  }
 Logger.log(result);
 Logger.log(response2);

}

问题:

您应该将 cookie 包含在作为调用参数传递的对象的 属性 headers 中,如您所见 in the docs

代码示例:

var header = { "Cookie": cookie[1] };
var options = { "headers": header };
var url = "https://www.erevollution.com/tr/market/1/1/1/1";
var response = UrlFetchApp.fetch(url, options);

参考:

我解决了这个问题,方法是获取我的响应 headers cookie 并将它们排序为所需的下一页 (url2) 请求 headers cookie。所以我得到了下一页的 cookie (newcookie) 的正确顺序。

function Price() {
 var url = "https://www.erevollution.com/en/login"; 
  var payload = {
    "email":"test@gmail.com", 
    "password":"testpassword",
    "remember":"on"
  }; 

  var options = {
    "payload":payload,
    "method":"post",
    "followRedirects" : false
  };

  var response = UrlFetchApp.fetch(url, options);
  if ( response.getResponseCode() == 200 ) {               //could not log in.
    var result = "Couldn't login. Username/password is incorrect.";
  } 
  else if ( response.getResponseCode() == 302 ) {         //login was successful
       var result = "Logged in successfully";
      var cookie = response.getAllHeaders()['Set-Cookie'];     

         for(m=0;m<5;m++){
          cookie[m]=cookie[m].substring(0,cookie[m].indexOf(";"));
         }
       var newcookie=cookie[4]+"; "+cookie[1]+"; "+cookie[2]+";"+cookie[3]+"; "+cookie[0];

       var header = { "Cookie":newcookie };
       var options2 = { "headers": header };


        var url2 = "https://www.erevollution.com/tr/market/1/1/1/1";
        var response2 = UrlFetchApp.fetch(url2, options2);
        var content = response2.getContentText();