edit Я считаю, что проблема заключается в том, что при первом открытии веб-сайта необходимо нажать кнопку «Принять нашу политику конфиденциальности ...».Сейчас я изучаю, как можно «щелкнуть» по этой кнопке с помощью запросов Python, однако эта кнопка вызывает функцию javascript, поэтому я не уверен, возможно ли это сделать только с помощью библиотеки запросов.
Я пытаюсь написать скрипт для этого сайта: https://rocket -league.com /
Мне нужно войти в систему, чтобы выполнить свои задачи, но у меня возникают проблемы при входе.
Мне кажется, что я учел все правильные параметры.Я извлекаю csrf_token динамически с помощью регулярных выражений.Может быть, мне нужно что-то сделать с куки-файлами, но я не уверен, что?
Это моя первая попытка написать скрипт, который взаимодействует с веб-сайтами, поэтому извините, если я наивен.
Я был бы благодарен за любые идеи, которые не являются скрытым способом сказать мне, что я тупой и / или ленивый.
Вот мой код:
import requests;
import re;
payload = {
'csrf_token': '',
'email': 'myemail',
'password': 'mypassword',
'submit': 'Login'
}
url = 'https://rocket-league.com/login'
with requests.Session() as s:
r = s.get(url)
m = re.search("<input type='hidden' name='csrf_token' value='(.+)'", r.text)
if m: payload['csrf_token'] = m.group(1)
else: print("couldnt find csrf_token")
p = s.post('https://rocket-league.com/functions/login.php', data=payload)
print(p.text)
При запуске этого кода выводится HTML-код, в котором все еще есть форма входа в систему, что означает, что я не вошел в систему.
Когда я вхожу в свой браузер с инструментами разработчика> сеть открыта, я получаю этоинформация для моего почтового запроса:
Заголовки:
Request URL: https://rocket-league.com/functions/login.php
Request method: POST
Status code: 302 Found
Version HTTP/2.0
Файлы cookie:
__cfduid: d2c83b2c9ad728195366656a56592f6d71549577451
acceptedPrivacyPolicy: 2.0
euconsent: BObnsHAObnsHAABABAENCF-AAAAkF7_______9______9uz_Ov_v_f__33e8__9v_l_7_-___u_-33d4-_1vf99yfm1-7ftr3tp_87ues2_Xur__59__3z3_tphPhA
fantasy_rlcs_id: hA8fga9ghIgaFGA9
PHPSESSID: lrse3tgov95eg574sqga6la9jc
Параметры:
csrf_token: 3f2588113e8921f52dc3eb78e51246a1
email: myemail
password: mypassword
submit: Login
Вот фактический HTMLдля формы входа:
<form class="rlg-form" method="post" action="/functions/login.php">
<input type="hidden" name="csrf_token" value="3accad82ad0957cab634f805a7e28beb">
<input class="rlg-input" type="email" name="email" placeholder="Email" required="">
<input class="rlg-input" type="password" name="password" placeholder="Password" autocomplete="off" required="">
<fieldset class="rlg-checkbox">
<input type="checkbox" name="rememberme" id="rememberme-login">
<label for="rememberme-login">Remember me?</label>
</fieldset>
<input class="rlg-btn-primary" type="submit" name="submit" value="Login">
</form>