Как авторизоваться на сайте со всплывающим окном авторизации?
Всем привет! Есть сайт ,
мне нужно авторизоваться в нем через Python и отправлять сообщения. Делаю я это с помощью python requests.
import requests
url = 'https://www.wg-gesucht.de/en/'
user_agent_val = 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/75.0.3770.142 Safari/537.36'
# Создаем сессию и указываем ему наш user-agent
session = requests.Session()
r = session.get(url, headers = {
'User-Agent': user_agent_val
})
session.headers.update({'Referer':url})
session.headers.update({'User-Agent':user_agent_val})
# Получаем значение _xsrf из cookies
_xsrf = session.cookies.get('_xsrf', domain=".de")
# Осуществляем вход с помощью метода POST с указанием необходимых данных
post_request = session.post(url, {
'backUrl': 'https://www.wg-gesucht.de',
'username': '',
'password': '',
'_xsrf':_xsrf,
'remember':'yes',
})
#Вход успешно воспроизведен и мы сохраняем страницу в html файл
with open("hh_success.html","w",encoding="utf-8") as f:
f.write(post_request.text)
Но я никак не пойму, он заходит и авторизуется или нет??? И как взять ссылку окна авторизации?
Ответы (2 шт):
Возможно для такого решения стоит использовать Chrome Headless. Там авторизоваиться, и в дальнейшем использовать для получения информации. Хотя, после авторизации, лучше взять токен и потом использовать requests
Вам следует посмотреть, какие нужно передать значения методом POST. Если Вы открываете в браузере Google Chrome, то нажмите F12, или Просмотреть код. Затем перейдите во вкладку Network и авторизуйтесь на сайте. После авторизации нажмите на файл в таблице Name слева (чаще всего это самый первый файл, он может называться login/). Прокрутите до самого низа и найдите блок Form Data. Здесь вы можете найти все данные, которые следует передать, чтобы успешно авторизоваться на сайте, там же есть и уникальный токен о котором вы спрашивали в другом ответе.
В примере ниже значения взяты для сайта https://www.pythonanywhere.com/ (вы же должны передать те, которые есть в блоке Form Data)
...
data = {
'csrfmiddlewaretoken': session.cookies.get('csrftoken'),
'auth-username': 'your_login',
'auth-password': 'your_password',
'login_view-current_step': 'auth'
}
session.headers.update({'Referer': url})
post_request = session.post(url, data=data)
...
Плюс ко всему можете открыть файл hh_success.html (находится в той же директории, где и .py скрипт) и посмотреть его содержимое, корректно ли авторизовались и тд...