首页 > 后端开发 > Python教程 > 使用 Python 请求重定向后如何获取最终 URL?

使用 Python 请求重定向后如何获取最终 URL?

DDD
发布: 2024-11-13 02:06:02
原创
916 人浏览过

How can I get the final URL after redirects using Python Requests?

使用 Python 请求检索重定向的 URL

Requests 是一个用于发送 HTTP 请求的流行 Python 库,允许用户通过设置allow_redirects 来处理重定向参数为 True。虽然这解决了自动重定向的问题,但它会让您不知道目标 URL。这个问题解决了如何在一系列重定向后获取最终的URL。

解决方案在于response.history属性。请求成功后,response.url 返回最终 URL,而 response.history 提供所有中间响应及其各自 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.history 属性是否不为空,表示发生了重定向。历史记录中的每个 resp 对象都包含中间响应的状态代码和 URL。最后,response.url 提供最终 URL。

考虑以下示例:

>>> import requests
>>> 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
登录后复制

此输出确认请求在到达最终目的地 http:// 之前已重定向 3 次httpbin.org/get,提供了重定向链的完整图片。

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

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板