Я пытаюсь отправить запрос на вход на веб-сайт с помощью модуля запросов в Python, но на самом деле он не работает. Я новичок в этом ... поэтому я не могу понять, следует ли мне создавать файлы cookie для имени пользователя и пароля или какой-либо тип авторизации HTTP, который я нашел (??).
from pyquery import PyQuery
import requests
url = 'http://www.locationary.com/home/index2.jsp'
Итак, теперь я думаю, что должен использовать «почту» и куки ....
ck = {'inUserName': 'USERNAME/EMAIL', 'inUserPass': 'PASSWORD'}
r = requests.post(url, cookies=ck)
content = r.text
q = PyQuery(content)
title = q("title").text()
print title
У меня такое ощущение, что я неправильно делаю с печеньем ... Не знаю.
Если он не входит в систему правильно, заголовок домашней страницы должен выходить на «Locationary.com», а если это происходит, это должно быть «Домашняя страница».
Если бы вы могли объяснить мне кое-что о запросах и файлах cookie и помочь мне в этом, я был бы очень признателен. : D
Спасибо.
... Это все еще не работало. Хорошо ... так вот что говорит HTML домашней страницы перед входом в систему:
</td><td><img src="http://www.locationary.com/img/LocationaryImgs/icons/txt_email.gif"> </td>
<td><input class="Data_Entry_Field_Login" type="text" name="inUserName" id="inUserName" size="25"></td>
<td><img src="http://www.locationary.com/img/LocationaryImgs/icons/txt_password.gif"> </td>
<td><input class="Data_Entry_Field_Login" type="password" name="inUserPass" id="inUserPass"></td>
Думаю, я все делаю правильно, но вывод все равно "Locationary.com"
2-е РЕДАКТИРОВАНИЕ:
Я хочу иметь возможность оставаться в системе в течение длительного времени, и всякий раз, когда я запрашиваю страницу в этом домене, я хочу, чтобы контент отображался так, как если бы я вошел в систему.
источник
Я знаю, что вы нашли другое решение, но для тех, кто, как я, нашел этот вопрос, ища то же самое, это может быть достигнуто с помощью следующих запросов:
Во-первых, как это сделал Маркус, проверьте источник формы входа, чтобы получить три части информации - URL-адрес, на который отправляется форма, и атрибуты имени в полях имени пользователя и пароля. В его примере это inUserName и inUserPass.
Получив это, вы можете использовать
requests.Session()
экземпляр для отправки почтового запроса на URL-адрес входа с вашими данными для входа в качестве полезной нагрузки. Выполнение запросов из экземпляра сеанса по сути аналогично обычному использованию запросов, оно просто добавляет постоянство, позволяя хранить и использовать файлы cookie и т. Д.Предполагая, что ваша попытка входа в систему была успешной, вы можете просто использовать экземпляр сеанса для дальнейших запросов к сайту. Cookie-файл, который идентифицирует вас, будет использоваться для авторизации запросов.
пример
источник
p = s.post('LOGIN_URL.....
а затемp.text
Позвольте мне попытаться упростить: предположим, что URL-адрес сайта http://example.com/, и предположим, что вам нужно зарегистрироваться, указав имя пользователя и пароль, поэтому мы переходим на страницу входа, например, http: // example. com / login.php, просмотрите его исходный код и найдите URL-адрес действия, он будет в теге формы, например
теперь возьмите userinfo.php, чтобы создать абсолютный URL-адрес, который будет ' http://example.com/userinfo.php ', теперь запустите простой скрипт python
Я надеюсь, что это когда-нибудь поможет кому-то где-нибудь.
источник
webbrowser
модульprint r.content
неверно, что он должен использоватьprint(r.content)
Узнайте названия входов, используемых в форме веб-сайтов для имен пользователей
<...name=username.../>
и паролей,<...name=password../>
и замените их в приведенном ниже сценарии. Также замените URL-адрес, чтобы он указывал на желаемый сайт для входа.login.py
Использование
disable_warnings(InsecureRequestWarning)
отключит любой вывод сценария при попытке входа на сайты с непроверенными сертификатами SSL.Дополнительно:
Чтобы запустить этот сценарий из командной строки в системе на базе UNIX, поместите его в каталог, т.е.
home/scripts
добавьте этот каталог в свой путь~/.bash_profile
или в аналогичный файл, используемый терминалом.Затем создайте ссылку на этот скрипт python внутри
home/scripts/login.py
Закройте свой терминал, запустите новый, запустите
login
источник
requests.Session()
Раствор помощь с лесозаготовками в форму с защитой CSRF (как это используется в Колба-ВТФ формах). Проверьтеcsrf_token
, требуется ли a как скрытое поле, и добавьте его в полезную нагрузку, указав имя пользователя и пароль:источник