如何Python请求像我的眉毛一样跟随URL

2024-10-02 22:25:54 发布

您现在位置:Python中文网/ 问答频道 /正文

我注意到Python的请求库不像我的浏览器那样遵循特定的URL重定向。在

例如,当我这样做时:

response = requests.get('http://www.bbmt.org/', verify=False, allow_redirects=True)

最后的URL是https://secure.jbs.elsevierhealth.com/action/consumeSsoCookie?redirectUri=http%3A%2F%2Fwww.bbmt.org%2Faction%2FconsumeSharedSessionAction%3FMAID%3DJ3%252BqsjOKzWZhWAeF2bXl%252FA%253D%253D%26JSESSIONID%3DaaaorUqRLHgAe4WCenKv%26SERVER%3DWZ6myaEXBLEt1UgI9cIkvA%253D%253D%26ORIGIN%3D470200154%26RD%3DRD&acw=&utt=

但是,在我的浏览器中,我最终被重定向回http://www.bbmt.org/。在

在这些情况下,有没有办法让请求的行为像我的浏览器?在


Tags: orgfalsetruehttpurlgetresponsewww
1条回答
网友
1楼 · 发布于 2024-10-02 22:25:54

https://secure.jbs.elsevierhealth.com中的重定向是javascript重定向。
您可以在源代码中看到:

window.location.href = "http://www.bbmt.org/action/consumeSharedSessionAction?SERVER=WZ6myaEXBLHj3ZzqSv9HPw%3D%3D&MAID=IBS8Eq6B1iRWhf2ywTW5pg%3D%3D&JSESSIONID=aaa8eY-zM394XcPptT_Kv&ORIGIN=670572791&RD=RD";

您将需要运行javascript来进行重定向(这是请求不能做的)。在

如果您需要这个特定重定向的解决方案,您可以解析响应的内容(在python中)并使用该特定的URL并使用它来创建一个新请求。在

如果你需要一个通用的解决方案-你将需要使用一个无头浏览器来做到这一点。您可以找到more information in this question。在

相关问题 更多 >