В вашем первом запросе к веб-странице в HTML есть значение signInSecurity.Это значение, которое вы упомянули, должно быть включено.
Перейдите к url
выше и просмотрите HTML (щелкните правой кнопкой мыши> Inspect).Ищите этот элемент в HTML (значение, конечно, будет другим:):
<input type="hidden" name="signInSecurity" value="3c9c0f517618937924df9711cef6d148-0555a66568a7d12ffcfe656f8718ab22">
Вам нужно включить это значение в login_data
перед тем, как сделать запрос POST.
Попробуйте что-то вроде этого:
from requests_html import HTMLSession
with HTMLSession() as c:
url = 'https://www.stock-analysis-on.net/User/Sign-in/%252F'
USERNAME = 'address@example.com'
PASSWORD = '*********'
r = c.get(url)
input_element = r.html.find('input[name=signInSecurity]', first=True)
sign_in_security_value = input_element.attrs.get('value')
login_data = dict(username=USERNAME, password=PASSWORD, signInSecurity=sign_in_security_value)
r = c.post(url, data=login_data)
page = c.get('https://www.stock-analysis-on.net')
print(page.content)
Примечание:
- Я пропустил cookie;запросы должны обрабатывать куки в течение сеанса.
- Я пропустил данные реферера в заголовке, я не думаю, что вам понадобится какая-либо информация заголовка в этом случае.
- Я использовал запросы-html вместо запросов ... обе библиотеки написаны одним и тем же автором, в него встроены возможности синтаксического анализа, упрощающие анализ HTML.
Удачи!