Почему не получается авторизоваться на http://joyreactor.cc с requests - Python
Формулировка задачи:
Листинг программы
- import requests
- from fake_useragent import UserAgent
- session = requests.Session()
- data = {
- 'signin[username]': 'username',
- 'signin[password]': 'password',
- 'signin[_csrf_token]': '_csrf_token'
- }
- headers = {
- 'User-Agent': UserAgent().firefox
- }
- page = session.get("http://joyreactor.cc", headers=headers)
- page = session.post("http://joyreactor.cc/login", data=data)
- f = open('out.html', 'wb')
- f.write(page.content)
- f.close()
Решение задачи: «Почему не получается авторизоваться на http://joyreactor.cc с requests»
textual
Листинг программы
- def auth(url,login=None,password=None):
- # отправляем первичный запрос главной страницы
- resp = session.get(url, headers=headers)
- page = lxml.html.fromstring(resp.text) # получаем разобранное дерево элементов
- form = page.forms[0] # берем самую первую форму - то, что брать нужно именно ее
- # нужно убеждаться эмпирическим путем, заглянув в исходный код страницы, так как нужная форма может и не быть первой
- # здесь просто узнаем поля нашей формы
- for key,val in form.fields.items():
- print(key,val)
- # а поля у нас такие
- form.fields['session[login]'] = login
- form.fields['session[password]'] = password
- # скрытое поле authenticity_token у нас будет передано вместе с прочими полями
- # в чем можно убедиться просмотрев
- print(form.form_values())
- # логинимся
- r = session.post("{}{}".format(url,form.action), data=form.form_values())
- print(resp.status_code)
- return r.text
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д