Всем привет!
Необходимо реализовать код, который авторизуется на сайте и парсит имя пользователя.
Набросал вот такой код, но все оказалось не так просто.
Поковырявшись в коде страниц было решено, что через реквестс проблематично будет, только форма авторизации грузится через 2 запроса, сначала нужен get identity.api.navigraph.com/connect/authorize, в нем возвращается signin, затем get identity.api.navigraph.com/login, здесь получаем idsrv.xsrf, только потом уже post identity.api.navigraph.com/login
Ок, решено было делать через Selenium, но тут тоже возникли вопросы.
Как с главной страницы, средствами Selenium, перейти на страницу авторизации https://identity.api.navigraph.com/login?signin=76424a6a163a3257a437796a882821f9
Как кликнуть на баттон Sign in на главной странице ? Через findelement найти не удалось.
Итого: как реализовать авторизацию на этом сайте ?
Необходимо реализовать код, который авторизуется на сайте и парсит имя пользователя.
Набросал вот такой код, но все оказалось не так просто.
Python:
import requests
import time
from bs4 import BeautifulSoup
url = 'https://identity.api.navigraph.com/login?signin=cf01f056a8f731c54ada85d720158931'
url_next = 'https://navigraph.com/account?refresh=true'
url_out = 'https://store.x-plane.org/logout.asp'
signin = '8dc45d4b0c100a8e97e868351319210e'
login = 'stepanovatai@yandex.ru'
password = 'Qwerty7890'
proxy = {'http':'http://' + '183.233.169.226:9091'}
headers = {'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/109.0.0.0 Safari/537.36'}
s = requests.Session()
req = s.post(url, data={'signin' : signin, 'idsrv.xsrf' : idsrv, 'username': login, 'password': password}, headers=headers)
get_next = s.get(url_next, headers=headers)
soup = BeautifulSoup(get_next.text, "html.parser")
name = soup.find('h1')
print(name.text)
Поковырявшись в коде страниц было решено, что через реквестс проблематично будет, только форма авторизации грузится через 2 запроса, сначала нужен get identity.api.navigraph.com/connect/authorize, в нем возвращается signin, затем get identity.api.navigraph.com/login, здесь получаем idsrv.xsrf, только потом уже post identity.api.navigraph.com/login
Ок, решено было делать через Selenium, но тут тоже возникли вопросы.
Как с главной страницы, средствами Selenium, перейти на страницу авторизации https://identity.api.navigraph.com/login?signin=76424a6a163a3257a437796a882821f9
Как кликнуть на баттон Sign in на главной странице ? Через findelement найти не удалось.
Python:
button = driver.find_element(By.XPATH, '//*[@id="consent"]/div/div/a[2]')
button.send_keys(Keys.ENTER)
Итого: как реализовать авторизацию на этом сайте ?