我正在做一个报废项目,遇到问题,使用 python 请求我可以登录网站并获取随后发送的令牌,问题随之而来。发送正确的令牌进行帖子以记录表格的信息(应该与帖子一起出现),但帖子返回的不是数据,而是没有数据的 HTML。
这可能是什么原因造成的?以及如何收集数据,我正在做适当的帖子并提供 cookie 和凭据。
用代码编辑
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)
我知道该怎么做了。
将
'X-Requested-With': 'XMLHttpRequest'
添加到 POST 标题
并使用 data=
而不是 params=
来请求。