2024-10-02 22:25:54 发布
网友
我注意到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/。在
在这些情况下,有没有办法让请求的行为像我的浏览器?在
https://secure.jbs.elsevierhealth.com中的重定向是javascript重定向。 您可以在源代码中看到:
https://secure.jbs.elsevierhealth.com
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并使用它来创建一个新请求。在
URL
如果你需要一个通用的解决方案-你将需要使用一个无头浏览器来做到这一点。您可以找到more information in this question。在
https://secure.jbs.elsevierhealth.com
中的重定向是javascript重定向。您可以在源代码中看到:
您将需要运行javascript来进行重定向(这是请求不能做的)。在
如果您需要这个特定重定向的解决方案,您可以解析响应的内容(在python中)并使用该特定的
URL
并使用它来创建一个新请求。在如果你需要一个通用的解决方案-你将需要使用一个无头浏览器来做到这一点。您可以找到more information in this question。在
相关问题 更多 >
编程相关推荐