使用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中文網其他相關文章!