我注意到 Python 的 requests 库并不像我的浏览器那样遵循某些 URL 重定向。
例如,当我这样做时:
response = requests.get('http://www.bbmt.org/', verify=False, allow_redirects=True)
最终的网址是
然而,在我的浏览器中,我最终被重定向回http://www.bbmt.org/ http://www.bbmt.org/.
在这些情况下,有没有办法让请求的行为像我的浏览器一样?
里面的重定向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
并用它来创建一个新的请求。
如果您需要通用解决方案 - 您将需要使用无头浏览器来做到这一点。你可以找到这个问题的更多信息 https://stackoverflow.com/questions/6025082/headless-browser-for-python-javascript-support-required.
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)