获取搜索页面结果,使用jwt身份验证(python)登录

uoifb46i  于 2021-07-13  发布在  Java
关注(0)|答案(1)|浏览(244)

我正在尝试让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请求会处理它吗?
无论如何,任何帮助都是值得感激的。谢谢

4urapxun

4urapxun1#

打字错误。。在responsesearch中,我使用了在初始登录中定义的头。应该是headers=headersearch。其余的都按预期工作。谢谢!

相关问题