Я хотел бы зайти на определенную веб-страницу и загрузить несколько страниц, как зарегистрированный пользователь. Я думаю, что теоретически знаю, что делать, основываясь на ответе на qaru.site/questions/421148/..., но я понятия не имею, где в адресе я должен ввести учетные данные для входа. В вышеизложенном вопросе это совершенно очевидно, но это не так очевидно в Aukro.
Я был бы очень благодарен за любой avice...:)
Одна сложная часть заключается в том, что эта страница входа в систему устанавливает кучу файлов сеансов cookie и добавляет некоторые уникальные параметры строки запроса для вашего сеанса. Предположительно, вам нужно получить хорошие значения с сервера для каждого сеанса, который вы создали.
Когда вы приземляетесь на https://ssl.aukro.cz/enter_login.php, вы получаете 302 Найдено (что на практике используется для перенаправления). Полный запрос выглядит следующим образом:
Date Wed, 26 Aug 2009 17:50:05 GMT Server Apache Vary Accept-Encoding Set-Cookie ws2=acda7c76687f; expires=Wed, 26-Aug-2009 18:20:05 GMT; path=/; domain=.aukro.cz Expires Thu, 19 Nov 1981 08:52:00 GMT Cache-Control no-store, no-cache, must-revalidate, post-check=0, pre-check=0 Pragma no-cache Location https://ssl.aukro.cz/enter_login.php?session=NmQ2YQFRBVABVgFRVFQAXVRXVFZXWlcHBVRVWAcGUF0OUVJWVVRRXFVUBFFTAAcGAFxUA1NSY2JkZQ%3D%3D&global_login_hash=e16bd60f566a0ae3752997bf21844c4ec2bd0d22&session_login_hash=fecd7825582b6d038d288f67c368090aa369c85d&url=OTFhY1hFRkYDHk4UR0YcV0xaEwweUkgZXEMTDEIeU1VaVBIQb1RARFZDTxNYQQ1YVm4FCkIMAzAxMjY%3D Content-Encoding gzip Content-Length 26 Keep-Alive timeout=2, max=9999 Connection Keep-Alive Content-Type text/html; charset=UTF-8
Вам нужно будет захватить расположение URL и файл cookie, который он устанавливает ( "ws2" ). Затем вам нужно будет зайти на тот URL-адрес перенаправления, который вы захватили, и получить остальные куки файлы, которые он устанавливает, которые ws2
, stsd_refr
и qeppo_login
.
Затем вам нужно заполнить тело POST элементами формы, как указано выше, и в ссылках, которые вы указали.
Не зная ничего об этом сайте, на который вы пытаетесь войти, я бы рискнул предположить, что если вы не получите хорошие переменные сеанса и файлы cookie и включите их для каждого из ваших логических запросов, ваши попытки входа в систему могут потерпеть неудачу.
Короче говоря, просто используйте Fiddler или Firebug, чтобы понять, как выглядит сеанс входа в систему, и имитировать его, используя методы, которые вы уже видели.
Вам нужно создать запрос POST HTTPS, содержащий следующие значения в теле application/x-www-form-urlencoded
:
user_login = <user name>
user_password = <password>
session = "ZTEzMw9RAAcGUlIABQgDVlcBBVAAB1NRAAFQClAAUQADCAdRDgNRAQcDVwsHBQADVAYAAAYBNjA1Yg=="
global_login_hash = "c6da0c2fa41454f62c80d9cc688f4303ebebb9b3"
session_login_hash = "8e5190abcb4cccee78b7331a616c4fb723f7fe41"
url = "OTFhY1hFRkYDHk4UR0YcV0xaEwweUkgZXEMTDEIeU1VaVBIQb1RARFZDTxNYQQ1YVm4FCkIMAzAxMjY="
request_server = "ssl.aukro.cz"
Вы можете начать с подачи значений для user_login
и user_password
и игнорировать остальные, но невозможно точно знать, что такое сервер. Закодированные значения, конечно, не могут использоваться повторно, и при необходимости вам придется очистить их от страницы входа в систему до входа в систему.
Это может быть допустимая альтернативная техника
Необходимые элементы управления для этого:
ID = "user_login"
ID = "user_password"
value = "Přihlásit" (по-видимому, чешский для "Login" )
Вам нужно будет просмотреть источник веб-страницы и найти <form>
, который используется для входа. Это даст вам URL-адрес, который вам нужно будет отправить. Вам нужно будет указать все переменные, которые находятся в тегах <input>
, точно так же, как они делали в связанном вами вопросе.
В этом случае вам нужно указать: session, global_login_hash, session_login_hash, url, request_server, user_login, user_password
Один из способов определить, что нужно отправить, - использовать прокси, например Fiddler2, затем использовать веб-браузер с его прокси-сервером установить на Fiddler и войти на веб-страницу. Fiddler предоставит вам заголовки запроса и ответа и текст.