Как я могу получить исходный код после входа в систему с помощью urlFetchApp? - PullRequest
0 голосов
/ 19 апреля 2020

Я застрял. Я могу войти на сайт, и теперь, после того, как я вошел в систему, я хочу получить исходный код 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);

}

Ответы [ 2 ]

1 голос
/ 20 апреля 2020

Проблема:

Вы должны включить повара ie в свойство headers объекта, который вы передаете, в качестве параметра вашего вызова, как вы можете видеть в документации .

Пример кода:

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);

Ссылка:

0 голосов
/ 21 апреля 2020

Я решил эту проблему, взяв файлы cookie заголовков ответа и отсортировав их в качестве файлов cookie заголовков запроса следующей страницы (url2). Итак, я получил правильный заказ повара ie (newcookie) для следующей страницы.

Response Headers Request Header

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();
...