首頁 > 後端開發 > 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 庫,允許用戶通過設置_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
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板