Войти на сайт, используя PHP HttpRequest - PullRequest
0 голосов
/ 05 ноября 2011

Я ищу способ поиска бизнес-буквы "X" в LinkedIn, который требует действительного сеанса входа в систему. Я делаю Http-запросы с помощью PHP-объекта HttpRequest, но я недостаточно знаком с обработкой данных / файлов cookie сеанса, чтобы выяснить, как точно определить мою ошибку.

    $loginURL = "https://www.linkedin.com/uas/login-submit";
    $loginPostData = array("session_key" => "mylogin@mydomain.com",
                           "session_password" => "itsasecret",
                           "source_app" => "",
                           "signin" => "",
                           "session_redirect" => "",
                           "csrfToken" => "",
                           "sourceAlias" => "",
    );

    $httpRequest = new HttpRequest($loginURL, HttpRequest::METH_POST);
    $httpRequest->setContentType("application/x-www-form-urlencoded");
    $httpRequest->addPostFields($loginPostData);
    $httpRequest->setOptions(array("redirect" => 10));
    $httpMessage = $httpRequest->send();
    $responseBody = $httpMessage->getBody());

Я записываю $ responseBody в файл и открываю его в браузере, но он содержит только общую страницу LinkedIn с полями для входа. Используя расширение «Tamper Data» для firefix, я вижу, что следующие заголовки запросов позволяют firefox загружать просматриваемую сессию веб-страницу:

Host=www.linkedin.com
Content-Type=application/x-www-form-urlencoded
Content-Length=124
POSTDATA=source_app=&session_key=mylogin@mydomain.com&session_password=itsasecret&signin=&session_redirect=&csrfToken=&sourceAlias=

В данных, которые я получаю, тоже есть что-то странное: я ожидаю увидеть что-то вроде "неверного имени пользователя или пароля", но получаю страницу по умолчанию linkedin.com.

1 Ответ

0 голосов
/ 05 ноября 2011

На самом деле, глядя на код linkedin, есть некоторые скрытые входные данные, которые вам нужно отправить как данные POST, потому что в вашем запросе нет одного или нескольких из этих значений, вы получили ту же страницу входа ...

Скопируйте и вставьте из файла

 <input type="hidden" name="source_app" value="">
 <input type="hidden" name="trk" value="guest_home_login">
 <input type="hidden" name="session_redirect" value="" id="session_redirect-login"><input type="hidden" name="csrfToken" value="ajax:9034582961576232024" id="csrfToken-login"><input type="hidden" name="sourceAlias" value="0_7r5yezRXCiA_H0CRD8sf6DhOjTKUNps5xGTqeX8EEoi" id="sourceAlias-login">
...