我正在尝试让html页面进行解析。网站本身有登录表单。我使用以下代码来完成登录表单:
headers = {
"Content-Type": "application/json",
"referer":"https://somesite/"
}
payload = {
"email": us,
"password": ps,
"web": "true"
}
session_requests = requests.session()
response = session_requests.post(
site,
data = json.dumps(payload),
headers = headers
)
result = response
resultContent = response.content
resultCookies = response.cookies
resultContentJson = json.loads(resultContent)
resultJwtToken = resultContentJson['jwtToken']
这工作得很好,我可以得到200 ok状态和jwttoken。
现在。当我真的试图得到网页(搜索结果)的网站返回给我'401-未授权'。。所以,问题是“我做错了什么?”。任何建议/暗示/想法都将不胜感激!
以下是得到401响应的请求:
siteSearch = "somesite/filters/search"
headersSearch = {
"content-type": "application/json",
"referer":"https://somesite",
"origin":"https://somesite",
"authorization":"Bearer {}".format(resultJwtToken),
"user-agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/89.0.4389.128 Safari/537.36"
}
payloadSearch = {
"userId":50432,
"filters" : [],
"savedSearchIds":[],
"size":24
}
responseSearch = session_requests.post(
siteSearch,
data = json.dumps(payloadSearch),
headers = headers
)
searchResult = response;
看着 Postman 和chrome开发工具,在我看来,我发送了与实际浏览器相同的请求(通过浏览器工作)。。但没有E-401React。
可能和饼干有关吧?第一个登录响应也会返回一堆cookies,但我认为session\u请求会处理它吗?
无论如何,任何帮助都是值得感激的。谢谢
1条答案
按热度按时间4urapxun1#
打字错误。。在responsesearch中,我使用了在初始登录中定义的头。应该是headers=headersearch。其余的都按预期工作。谢谢!