Авторизация на сайте

orlov1

Новичок
Пользователь
Июн 23, 2021
48
2
8
Всем привет!

Подскажите какие параметры нужно передать в POST запросе, чтобы проходила авторизация на сайте ? Авторизация почему то проходит через раз.
Все ли параметры передаются верно ?

Python:
url = 'https://pmdg.com/login.php?action=check_login'
username = 'art-grig2008@yandex.ru'
password = 'Qwerty7890-'

req = s.post(url, data={'login_email': username, 'login_pass': password, 'authenticity_token': token},  headers=headers)
 

PiraTb

Новичок
Пользователь
Янв 26, 2023
1
0
1
Привет!

Чтобы проходила авторизация на сайте, необходимо передать следующие параметры в POST запросе:

  • логин или адрес электронной почты
  • пароль
  • токен аутентичности
В вашем коде вы передаете параметры 'login_email', 'login_pass', 'authenticity_token', которые соответствуют именно этим параметрам. Все ли параметры передаются верно, можно узнать только после обращения к сайту, если авторизация проходит через раз, то возможно нужно передать дополнительные параметры, или проверить корректность переданных данных. Рекомендую проверить и использовать инструменты для отладки, такие как print или инструменты для анализа запросов и ответов (например, requests.Session()).
 

orlov1

Новичок
Пользователь
Июн 23, 2021
48
2
8
Полостью код выглядит так. Авторизация проходит, но не всегда. Не могу понять в чем проблема.
Конечно проверки в коде делал. Вроде все корректно.

Python:
import re
import requests
from bs4 import BeautifulSoup

url = 'https://pmdg.com/login.php?action=check_login'
url_next = 'https://pmdg.com/account.php'
url_out = 'https://pmdg.com/login.php?action=logout'
headers = {'User-Agent': 'Mozilla/5.0 (iPhone; CPU iPhone OS 8_4_1 like Mac OS X) AppleWebKit/600.1.4 (KHTML, like Gecko) Version/8.0 Mobile/12H321 Safari/600.1.4'}
username = 'art-grig2008@yandex.ru'
password = 'Qwerty7890-'         

s = requests.Session()
get_token = s.get(url)
soup0 = BeautifulSoup(get_token.content, "html.parser")
pattern = re.compile(r"csrf_token\":\"([^\"]+)")
script = soup0.find("script", text=pattern)
token = (pattern.search(script.text).group(1));

req = s.post(url, data={'login_email': username, 'login_pass': password, 'authenticity_token': token},  headers=headers)
next = s.get(url_next)

soup = BeautifulSoup(next.text, "html.parser")

billing = soup.find('h1', class_='page-title')
if "Orders" in billing.text:
    print('Авторизация прошла успешно !')
    out = s.get(url_out)
 

Форум IT Специалистов