Как авторизоваться на сайте с помощью python?

Здравствуйте.
Изучаю питон и решил попробовать авторизироваться на сайте. Никакого бэкграунда по веб технологиям нет, и как этот процесс происходит не знаю.
Когда нужно было просто чтото взять из страницы - использовал requests.
Пытался самым простым способом:
url = 'https://...'
login = 'login'
password = 'password'
r = requests.get(url, auth=(login, password))

Ничего естесственно не получилось. Тестировал на mail.ru с известным мне логином и паролем.
Для проверки использовал
r.url
Т.к. адресс (как я думаю) должен был поменяться после авторизации.
Начальный адрес: https://e.mail.ru/login
Новый адрес (должен быть, наверно): https://e.mail.ru/messages/inbox/?back=1
Помимое решения конкретного примера интересуют так-же советы "что почитать" на эту тему и вообще в какую сторону копать, хочется получить хоть какое то представление о том, как это работает. Я не программист и ничего сообо то и не знаю об этом, а python изучаю для себя.
  • Вопрос задан
  • 30289 просмотров
Решения вопроса 1
Kademn
@Kademn
Злой
Подозреваю, что вам необходимо использовать requests.Session()
url = 'https://...'
login = 'login'
password = 'password'
s = requests.Session()
r = s.get(url, auth=(login, password))


Раз вы взялись использовать какую-то библиотеку, начните с чтения документации к этой библиотеке, обычно там есть ответы на большинство ваших вопросов.
Тут например

Еще, зачастую, чтение чужого кода помогает понять как правильно (или неочень) пользоваться тем или иным инструментом. Скрипт авторизующийся в вконтакте и качающий музыку пишет, пожалуй, каждый начинающий питонщик. Найти несложно.
Немало также статей по парсингу сайтов с помощью python. В них непременно будет urllib или requests. Например тут.
Вообщем, ищите и обрящете =)
Вот и в результате послал в гугл, мда. =)

upd. Раз вы самообучаетесь для себя, попробуйте порешать задачи тут: checkio.org. Полезнее всего будет не просто решать задачи, а смотреть как ту же задачу решили другие, много нового для себя откроете и цели в виде решения очередной задачи всегда будут иметься (ачивки, если вы искушенный задрот, тоже самоцель). В примерах оставленными другими есть как хорошо документированные, так и безумные решения завернутые в одну строку.
Ответ написан
Пригласить эксперта
Ответы на вопрос 4
MAXH0
@MAXH0
Как я понимаю вы решили написать бота для Майл?
Тогда вам читать ЭТО
Но бесполезно, так как не поймете. ИБО рано...
ИМХО
Ответ написан
Grab!
Ответ написан
Комментировать
@lPolar
data scientist
Думаю дело в том, что на mail есть AJAX.
Нужно сделать следующее - через Firebug в Firefox посмотреть, какие конкретно запросы с каким содержанием шлет клиент серверу при логине, и воспроизвести эти запросы через любой удобный инструмент - grab/requests.
Мне в этом плане нравится grab - он быстрый и легко парсит исходный код страницы.
Ответ написан
Комментировать
xxxWarlocKxxx
@xxxWarlocKxxx
Для того чтобы получить авторизацию на сервере, нужно отправить правильно собранный POST запрос. Для начала нужно воспользоваться браузером "мозила" (или другим), зайти и авторизоваться на сайте отследив какую структуру имеет запрос, а дальше просто в POST вставляете HEADERS такой же как в браузере и если нужно то в data форму запроса (например типа JSON). И читайте что отвечает сервер обязательно.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы