Отправляю POST запрос на сайт для добавления сообщения на форум. На сайте предварительно залогинился и скопировал куки, которые передаю в сессию запроса.
При отправки GET запросов, через данную сессию, возвращаются страницы которые доступны только зарегистрированным пользователям. Т.е. куки передаются корректно.
При отправки POST запроса возвращается
CSRF verification failed. Request aborted.
You are seeing this message because this HTTPS site requires a 'Referer
header' to be sent by your Web browser, but none was sent. This header is
required for security reasons, to ensure that your browser is not being
hijacked by third parties
Какие еще параметры нужно передавать чтобы POST запрос обрабатывался корректно?
import requests
domain = '***'
header = {
'user-agent': "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/108.0.0.0 Safari/537.36",
}
session = requests.Session()
cookies_dict = [
{'domain': domain,
'name': 'sessionid_session',
'path': '/',
'value': '".eJyrVopPLC3JiC8tTi2KT0pMzk7NS1GyUkpJLcnOjC8oyk_LzEnVg4oX6zmXFpfk5zpBlekg680EajM2MzEyMqwFAD-UHmM:1pFDdv:eOxByiKOAHQAyNDdJfluwLV-VaQ"'},
{'domain': f'www{domain}',
'name': 'csrf__token',
'path': '/',
'value': 'uVDrE4ethIzvkxb6ihglmzk8P5yDlYNG'},
{'domain': domain,
'name': '_ym_d',
'path': '/',
'value': '1673347722'},
{'domain': domain,
'name': '_ym_isad',
'path': '/',
'value': '2'},
{'domain': domain,
'name': '_ym_uid',
'path': '/',
'value': '1673347722418692089'},
{'domain': domain,
'name': '_ym_visorc',
'path': '/',
'value': 'w'}
]
for cookies in cookies_dict:
session.cookies.set(**cookies)
data_forum = {'csrfmiddlewaretoken': 'uVDrE4ethIzvkxb6ihglmzk8P5yDlYNG', 'backurl': '/sp/mode/163209/threads/422416/',
'text': 'Отличный товар!'}
request_url = f'https://www{domain}/forum/thread/422416/reply/'
response = session.post(request_url, data=data_forum, headers=header)
print(response)
print(response.text)