如何在 Python 中使用 session.get 请求发回 XSRF 令牌?

问题描述

我正在尝试在网站上搜索“Adrian”一词。我已经明白,首先我必须向网站发送一个请求,在响应中我将有一个 XSRF 令牌,我需要用于第二个请求。据我所知,如果我使用 session.get() 它也会自动为第二个请求保留 cookie。我运行第一个请求,得到 200 个响应,我打印出 cookie,令牌就在那里。我运行第二个请求,我得到一个 400 错误,但如果我打印出第二个请求的标头,令牌就在那里。我不知道哪里出错了。为什么我第二次得到 400?

import requests  
session = requests.Session()

response = session.get('https://www.racebets.com/en/horse-racing/formguide') 
print(response)  
cookies = session.cookies.get_dict()  
print(cookies) 
XSrftoken = cookies['XSRF-TOKEN']  
print(XSrftoken)

response = session.get('https://www.racebets.com/ajax/formguide/search?s=Adrian') 
print(response)  
print(response.request.headers)

我也尝试跳过会话并在第二个请求中使用 requests.get() 并自己将令牌添加到标头中,但结果是相同的:

import requests 
session = requests.Session()
 
response = session.get('https://www.racebets.com/en/horse-racing/formguide')
print(response) 
cookies = session.cookies.get_dict() 
print(cookies)
XSrftoken = cookies['XSRF-TOKEN'] 
print(XSrftoken)
 
headers = {'XSRF-TOKEN': XSrftoken} 
response = session.get('https://www.racebets.com/ajax/formguide/search?s=Adrian',headers=headers)
print(response) 
print(response.request.headers)

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)