Форум сайта python.su
Мне надо реализовать автризацию на mail.ru для парсинга почты.
Но для начала решил попробовать на сайте python.su
import requests url = 'http://python.su/account/signin/' email = 'email' password = 'password' user_data = {'email': email, 'password': password} response = requests.post(url, data=user_data)
Отредактировано roggerg (Окт. 1, 2017 06:16:20)
Офлайн
Нужно запомнить csrftoken, который передается в cookie и передать его в post запросе при авторизации.
Попробуйте следующее:
mysession = requests.session() mysession.get(url) user_data.update({'csrfmiddlewaretoken': mysession.cookies['csrftoken']}) response = mysession.post(url, data=user_data)
Отредактировано scidam (Окт. 1, 2017 08:39:12)
Офлайн
scidamСпасибо, с вашими рекомендациями авторизация прошла. Не могли бы вы объяснить что делает эта строчка, я понимаю что идет запрос на получение страницы но почему она не присвоена какой-нибудь переменной.
Нужно запомнить csrftoken, который передается в cookie и передать его в post запросе при авторизации.Попробуйте следующее:
mysession.get(url)
Отредактировано roggerg (Окт. 1, 2017 21:50:44)
Офлайн
Строчка “mysession.get(url)” нужна, чтобы получить текущее значение csrf токена. csrf токен сохраняется в mysession.cookies, и его нам нужно отдать при отсылке формы, иначе запрос не пройдет (сайт-то работает на django и использует стандартную защиту от csrf-атак).
> Этот способ авторизации будет работать для всех сайтов с http?
Конечно нет. Сервер может иметь хитрые способы проверить кто пытается авторизоваться/зарегистрироваться робот или человек. Начиная от простой проверки заголовков запроса и/или использования javascript скриптов на странице, чтобы оценить по поведению на странице не робот ли выполняет запросы.
Офлайн
scidam
Строчка “mysession.get(url)” нужна, чтобы получить текущее значение csrf токена. csrf токен сохраняется в mysession.cookies, и его нам нужно отдать при отсылке формы, иначе запрос не пройдет (сайт-то работает на django и использует стандартную защиту от csrf-атак).> Этот способ авторизации будет работать для всех сайтов с http?Конечно нет. Сервер может иметь хитрые способы проверить кто пытается авторизоваться/зарегистрироваться робот или человек. Начиная от простой проверки заголовков запроса и/или использования javascript скриптов на странице, чтобы оценить по поведению на странице не робот ли выполняет запросы.
Офлайн