首页  >  文章  >  后端开发  >  Python请求重定向后如何确定最终URL?

Python请求重定向后如何确定最终URL?

Susan Sarandon
Susan Sarandon原创
2024-11-11 12:32:02953浏览

How Do I Determine the Final URL After Redirection Using Python Requests?

使用 Python Requests 库确定重定向后的新 URL

Python Requests 库擅长处理 HTTP 请求,但了解其重定向机制至关重要用于访问最终登陆页面。通过设置allow_redirects=True,库可以通过重定向链跟踪请求。但是,要获取新的重定向 URL,您需要更深入地了解请求的历史记录。

response.history 属性保存请求期间遇到的所有重定向响应的记录。历史列表中的每个响应都包含其状态代码和重定向到的 URL。列表中的最后一项代表最终目的地,存储在 response.url 中。

要访问此信息,请使用以下代码:

import requests

response = requests.get(someurl, allow_redirects=True)
if response.history:
    print("Request was redirected")
    for resp in response.history:
        print(resp.status_code, resp.url)
    print("Final destination:")
    print(response.status_code, response.url)
else:
    print("Request was not redirected")

考虑以下示例:

>>> response = requests.get('http://httpbin.org/redirect/3')
>>> response.history
(<Response [302]>, <Response [302]>, <Response [302]>)
>>> for resp in response.history:
...     print(resp.status_code, resp.url)
...
302 http://httpbin.org/redirect/3
302 http://httpbin.org/redirect/2
302 http://httpbin.org/redirect/1
>>> print(response.status_code, response.url)
200 http://httpbin.org/get

此演示展示了遵循重定向链、显示每个重定向的状态代码和 URL 以及最终显示最终目的地的过程。通过利用response.history,您可以在请求重定向后轻松提取新的URL。

以上是Python请求重定向后如何确定最终URL?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn