Google Sheets: веб-очистка защищенных паролем данных - PullRequest
0 голосов
/ 10 декабря 2018

Я пытаюсь загрузить таблицу данных с www.investing.com, которая доступна только после того, как я войду (бесплатные данные).Я пробовал множество примеров кодов, которые я нашел в Интернете, чтобы заставить это работать, но я все еще терплю неудачу.Этот код не выдает никаких ошибок, но когда я проверяю журнал, он говорит: «не авторизован».

(**** в имени пользователя должно быть @ gmail.com) ((У меня нетЯ думаю, что часть «Přihlásit se» упоминается в оригинальном коде, так что я закомментировал это сейчас))

function fetchAdminPage() {
   var url = "https://www.investing.com/";
   var options = {
      "method": "post",
      "payload": {
        'username': 'rudysemail****',
        'password': 'Honey20!7',
     //   'send': 'Přihlásit se',
        '_do': 'signIn-submit',
        "testcookie": 1
      },
      "followRedirects": true
   };
   var response = UrlFetchApp.fetch(url, options);
   if ( response.getResponseCode() == 200 ) {
     // Incorrect user/pass combo
     Logger.log("didnt log in");
   } else if ( response.getResponseCode() == 302 ) {
     // Logged-in
     var headers = response.getAllHeaders();
     if ( typeof headers['Set-Cookie'] !== 'undefined' ) {
        // Make sure that we are working with an array of cookies
        var cookies = typeof headers['Set-Cookie'] == 'string' ? [ headers['Set-Cookie'] ] : headers['Set-Cookie'];
        for (var i = 0; i < cookies.length; i++) {
           // We only need the cookie's value - it might have path, expiry time, etc here
           cookies[i] = cookies[i].split( ';' )[0];
        };
        url = "https://www.investing.com/portfolio/?portfolioID=MzNlNjNtZDk0Zm9gN2I%3D";
        options = {
            "method": "get",
            // Set the cookies so that we appear logged-in
            "headers": {
               "Cookie": cookies.join(';')
            }
        };
        response = UrlFetchApp.fetch(url, options);
     };
     Logger.log(response.getContentText()); 
   };     


}

Я работал над этим часами, если кто-нибудь мог бы помочь, это было быклассно!Кроме того, при условии, что это решено, какова функция записи данных в электронную таблицу?

Спасибо

...