Python парсинг с авторизацией
Пытаюсь парсить информацию о своём персонаже в браузерной игре.
Для этого нужно залогинится. Как это сделать?
Пишу такой вот код:
import requests
URL = "https://tiwar.ru/?sign_in=1"
r = requests.post(URL, data={"login": "NickName", "pass": "MyPass"})
print(r.text)
Выдает код страницы с вводом логина и пароля:
<input class='text medium-text' type='text' id='login' name='login' value="NickName"/><br/>Пароль:<br/><input class='text medium-text' type='password' name='pass'/>
Заметил, что в input для login есть по умолчанию value со значением "", а у пароля нет, думаю в этом проблема. Как можно заполнить?
P.S. Пришел к такому выводу, так как в другой игре есть значения и для логина и пароля по умолчанию и я могу парсить данные своего персонажа при точно таком же коде:
import requests
URL = "https://s7-ru.bitefight.gameforge.com/user/lobbylogincheck" # Парсится без проблем с авторизацией
r = requests.post(URL, data={"user": "NickName", "pass": "MyPass"})
print(r.text)
Ответы (1 шт):
Автор решения: Guter
→ Ссылка
Решение найдено с помощью Selenium. Спасибо Zhenia Kviatkivskyi.
import time
from selenium.webdriver.common.by import By
from selenium.webdriver.chrome.service import Service
from selenium import webdriver
chromedriver = Service(executable_path="C:/Users/User/Downloads/chromedriver_win32/chromedriver.exe")
browser = webdriver.Chrome(service=chromedriver)
browser.get('https://tiwar.ru/?sign_in=1')
username = browser.find_element(By.NAME, 'login')
password = browser.find_element(By.NAME, 'pass')
entry = browser.find_element(By.CSS_SELECTOR, 'input.label')
username.send_keys("NickName")
password.send_keys("MyPass")
entry.click()
time.sleep(3)
print(entry)