Почему не получается авторизоваться на http://joyreactor.cc с requests - Python

Узнай цену своей работы

Формулировка задачи:

Листинг программы
  1. import requests
  2. from fake_useragent import UserAgent
  3. session = requests.Session()
  4. data = {
  5. 'signin[username]': 'username',
  6. 'signin[password]': 'password',
  7. 'signin[_csrf_token]': '_csrf_token'
  8. }
  9. headers = {
  10. 'User-Agent': UserAgent().firefox
  11. }
  12. page = session.get("http://joyreactor.cc", headers=headers)
  13. page = session.post("http://joyreactor.cc/login", data=data)
  14. f = open('out.html', 'wb')
  15. f.write(page.content)
  16. f.close()
результат пост запроса

Решение задачи: «Почему не получается авторизоваться на http://joyreactor.cc с requests»

textual
Листинг программы
  1. def auth(url,login=None,password=None):
  2.     # отправляем первичный запрос главной страницы
  3.     resp = session.get(url, headers=headers)
  4.    
  5.     page = lxml.html.fromstring(resp.text) #  получаем разобранное дерево элементов
  6.     form = page.forms[0]  # берем самую первую форму - то, что брать нужно именно ее
  7.     # нужно убеждаться эмпирическим путем, заглянув в исходный код страницы, так как нужная форма может и не быть первой
  8.    
  9.     # здесь просто узнаем поля нашей формы
  10.     for key,val in form.fields.items():
  11.         print(key,val)
  12.    
  13.     # а поля у нас такие
  14.     form.fields['session[login]'] = login      
  15.     form.fields['session[password]'] = password
  16.     # скрытое поле authenticity_token у нас будет передано вместе с прочими полями
  17.     # в чем можно убедиться просмотрев
  18.     print(form.form_values())
  19.     # логинимся
  20.     r = session.post("{}{}".format(url,form.action), data=form.form_values())
  21.     print(resp.status_code)
  22.     return r.text

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

5   голосов , оценка 3.8 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут