Задать вопрос

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

Помогите разобраться с авторизацией на сайтах через requests. Я пробую авторизоваться вот таким способом:
import requests
s = requests.session()

headers = {'login_username': 'login',
           'login_password': 'password'}
url = 'http://rustorka.com/forum/index.php'
page = s.get(url=url, auth=(headers['login_username'], headers['login_password']))
print(page.text)

Так я получаю неавторизованую страницу сайта.
Пробовал так:
s = requests.session()
headers = {
    'login_username': 'login',
    'login_password': 'password',
    'login': 'Вход'}
url = 'http://rustorka.com/forum/login.php'
page = s.post(url=url, data=json.dumps(headers))

Я наверное упускаю что-то фундаментальное. Я уже пробовал на разных сайтах - результат один и тот же - код страницы без авторизации.
Хочу авторизоваться, получить куки и работать с сайтом передавая куки.
  • Вопрос задан
  • 64695 просмотров
Подписаться 9 Оценить Комментировать
Решения вопроса 2
nobodynoone
@nobodynoone
requests.auth это компонент, который используется для авторизации по методу `Basic\Digital access authentication`, если у вас на сайте форма с авторизацией, то надо отправлять форму. Короче, учите матчасть.

session = requests.Session()
session.post('http://example.com/auth/login', {
     'username': 'admin',
     'password': 'password',
     'remember': 1,
})
Ответ написан
akarin
@akarin
s = requests.Session()
data = {"login_username":"my_login", "login_password":"my_password"}
url = "http://rustorka.com/forum/login.php"
r = s.post(url, data=data)

s.cookies
Ответ написан
Пригласить эксперта
Ответы на вопрос 2
macik
@macik
Самый простой способ сделать запрос это в программе Postman сделать запрос. Там есть уже встроенный создатель кода.
В нем генерируете нужный код на нужном языке.
Вот пример.
import requests

url = "http://rustorka.com/forum/index.php"

payload={'login_username': 'login',
'login_password': 'password'}
files=[

]
headers = {}

response = requests.request("POST", url, headers=headers, data=payload, files=files)

print(response.text)
Ответ написан
@mukhtar
В этой статье на практике подробно рассказывается как это сделать
https://gadjimuradov.ru/post/python-requests-avtor...
Ответ написан
Комментировать
Ваш ответ на вопрос

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

Похожие вопросы