小能豆

Python Requests 库重定向新 URL

javascript

我一直在浏览 Python 请求文档,但我看不到我想要实现的任何功能。

在我的脚本中我正在设置allow_redirects=True。

我想知道该页面是否已重定向至其他页面,新的 URL 是什么。

例如,如果起始 URL 为:www.google.com/redirect

最终的 URL 是www.google.co.uk/redirected

我如何获取该 URL?


阅读 44

收藏
2024-07-24

共1个答案

小能豆

在 Python 的库中,您可以通过访问对象的属性requests来获取重定向后的最终 URL 。此属性将为您提供所有重定向完成后的最终响应的 URL。url``Response

这是一个简单的例子来说明这一点:

import requests

# Make a GET request with redirects allowed (this is the default behavior)
response = requests.get('http://www.google.com/redirect')

# Print the final URL after all redirections
print("Final URL:", response.url)

解释

  • response.url:此属性包含所有重定向完成后的最终 URL。它是最终响应对象的 URL。
  • allow_redirects=True:这是的默认行为requests.get()。这意味着该库将遵循服务器提供的任何重定向指令。

完整示例

这是一个更完整的例子,包括处理潜在的异常:

import requests

try:
    # Perform the request
    response = requests.get('http://www.google.com/redirect')

    # Check the final URL after all redirects
    print("Final URL:", response.url)

except requests.RequestException as e:
    # Handle possible request exceptions
    print("An error occurred:", e)

附加信息

  • response.history:此属性包含在重定向过程中创建的对象列表Response。列表中的每个对象代表一次重定向。

for resp in response.history: print("Redirected from:", resp.url)

  • requests.get():该方法默认遵循重定向,但如果您设置了allow_redirects=False,则response.url只会为您提供初始请求的 URL,而不是最终重定向的 URL。

概括

通过使用response.url,您可以轻松获取重定向后的最终 URL。当使用该库在 Python 中处理 Web 请求时,这种方法非常有效且直接requests

2024-07-24