Как войти на сайт Fidelity и перемещаться по нему? - PullRequest
0 голосов
/ 06 сентября 2018

Я бы хотел получить помощь при входе на сайт Fidelity и навигации по нему. Мои попытки до сих пор не привели меня ни к чему значительному Итак, вот код, который я написал после долгих консультаций с ответами в Интернете. Шаги:

  1. Войти в систему Fidelity
  2. Убедитесь, что код ответа не 200, а 302 или 303, и мой код прошел этот тест (с кодом 302).
  3. Затем я проверяю количество возвращенных файлов cookie (их было 5), и для каждого файла cookie я пытаюсь перейти на другую веб-страницу в Fidelity (я делаю это пять раз, один раз для каждого файла cookie, просто потому, что не знаю, какие именно будет работать индекс «j» («cookie»).

function loginToFidelity(){
  var url = "https://www.fidelity.com"; 
  var payload = {
    "username":"*********", 
    "password":"*********" 
  }; 
  var opt = {
    "payload":payload,"method":"post","followRedirects" : false
  };
  var response = UrlFetchApp.fetch(encodeURI(url),opt);
  if ( response.getResponseCode() == 200 ) { 
    Logger.log("Couldn't login.");
    return
  } 
  else if (response.getResponseCode() == 303 || response.getResponseCode() == 302) {
    Logger.log("Logged in successfully. " + response.getResponseCode());
    var cookie = response.getAllHeaders()['Set-Cookie']
    for (j = 0; j < cookie.length; j++) {
      var downloadPage = UrlFetchApp.fetch("https://oltx.fidelity.com/ftgw/fbc/oftop/portfolio#activity", 
          {"Cookie" : cookie[j],"method" : "post","followRedirects" : false,"payload":payload});
      Logger.log(downloadPage.getResponseCode())
      Logger.log(downloadPage.getContentText())
    }
  }
}

Для каждого выбора индекса «j» я получаю один и тот же ответ для ResponseCode (всегда 302), а также один и тот же ответ для ContentText. Ответ на ContentText, очевидно, неверен, поскольку это не то, что должно быть. ContentText показан ниже:

<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
<html><head>
<title>302 Found</title>
</head><body>
<h1>Found</h1>
<p>The document has moved <a href="https://login.fidelity.com/ftgw/Fidelity/RtlCust/Login/Init?AuthRedUrl=https://oltx.fidelity.com/ftgw/fbc/oftop/portfolio">here</a>.</p>
</body></html>

Исходя из этого, у меня есть два вопроса:

  1. Правильно ли я зашел на сайт Fidelity? Если нет, почему я получаю код ответа 302 в процессе входа в систему? Что мне нужно сделать по-другому, чтобы правильно войти в систему?

  2. Почему я получаю такой странный и заведомо неправильный ответ для моего ContentText при получении совершенно разумного ResponseCode из 302? Что мне нужно сделать по-другому, чтобы я мог получить контролируемую паролем страницу в Fidelity, URL которой "https://oltx.fidelity.com/ftgw/fbc/oftop/portfolio#activity"?

ПРИМЕЧАНИЕ. В дополнение к указанному выше были проведены некоторые другие испытания. Результаты этих испытаний представлены в обсуждении ниже.

...