Python requests未返回正确数据
我正在做一个数据抓取的项目,但遇到了一些问题。我使用Python的requests库成功登录了网站,并获取了需要发送的令牌(tokens)。问题出现在后面。当我发送正确的令牌并进行一个POST请求,想要获取一个表格的信息时,返回的却不是数据,而是一个没有数据的HTML页面。
这可能是什么原因造成的呢?我该如何获取数据?我已经进行了正确的POST请求,并提供了cookies和凭证。
附上代码
def login():
credentials = file_manager.file_manager.get_credentials()
print(credentials)
headers = {
'User-Agent':'Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:123.0) Gecko/20100101 Firefox/123.0',
'Accept':'text/html,application/xhtml+xml,application/xml;'
}
session = requests.session()
session.headers.update(headers)
r = session.get(credentials[0])
soup = BeautifulSoup(r.text, 'html.parser')
verificationToken = (soup.find(attrs={'name':'__RequestVerificationToken'}).attrs['value'])
parameters = {
"__RequestVerificationToken":str(verificationToken),
"versao":"6",
"Email":credentials[1],
"Password":credentials[2],
"ReturnUrl":""
}
r = session.post(url,params=parameters, headers=headers)
r = session.get(url, headers=headers)
r = session.get(url,headers=headers)
parameters = {
parameter:parameter,
}
r = session.post(url, headers=headers)
f = open('response.html','w', encoding="utf-8")
f.write(r.text)
1 个回答
0
我找到了该怎么做。
在发送POST请求的时候,给请求的头部加上 'X-Requested-With': 'XMLHttpRequest'
这一项,并且在请求中使用 data=
而不是 params=
。