在Python的requests庫中,處理重定向非常簡單。默認情況下,requests會自動處理重定向,你不需要執行任何特殊操作。當遇到HTTP重定向時(例如,從HTTP到HTTPS),requests會自動跳轉到新的URL并獲取響應。
以下是一個簡單的示例,展示了如何使用requests庫爬取一個可能發生重定向的網站:
import requests
url = 'http://example.com' # 這個URL可能會發生重定向
response = requests.get(url)
print(response.url) # 輸出最終的URL,可能是重定向后的URL
print(response.status_code) # 輸出HTTP狀態碼,200表示成功,3xx表示重定向
在這個例子中,如果http://example.com
發生重定向,requests會自動處理并跳轉到新的URL。你可以通過response.url
獲取最終的URL,通過response.status_code
檢查HTTP狀態碼(例如,301表示永久重定向,302表示臨時重定向)。
如果你想要自定義處理重定向的行為,可以使用requests.Session()
對象并設置allow_redirects
參數。例如,以下代碼將禁用自動重定向處理:
import requests
session = requests.Session()
session.max_redirects = 0
url = 'http://example.com' # 這個URL可能會發生重定向
response = session.get(url)
print(response.url) # 輸出原始的URL,不會發生重定向
print(response.status_code) # 輸出HTTP狀態碼,可能是3xx表示重定向
請注意,禁用自動重定向處理可能會導致請求失敗,因為請求不會自動跳轉到新的URL。在這種情況下,你需要手動檢查和處理重定向。