Python+requests重定向歷史查看

一、什麼是重定向

重定向就是網絡請求被重新定個方向轉到了其它位置

二、爲什麼要做重定向

網頁重定向的情況一般有:網站調整(如網頁目錄結構變化)、網頁地址改變、網頁擴展名(.php、.html、.asp)的改變、當一個網站註冊了多個域名的時候。這些情況下都需要進行網頁的重定向。不做重定向的話就容易出現404錯誤(如訪問網上提供的網頁url經常報404錯誤,就是有可能url地址改變了但沒有做重定向導致的。)

三、Python+requests重定向操作

1、重定向分:301 redirect—》永久性重定向、302 redirect—》暫時性重定向,比如下圖的302永久性重定向
在這裏插入圖片描述

2、追蹤重定向

import requests
url = ‘http://home.cnblogs.com/u/xswt/’
r = requests.get(url,params=None,headers={‘Content-Type’:‘application/json’})
print(r.history)#history追蹤頁面重定向歷史
運行結果:

[<Response [301]>, <Response [302]>, <Response [302]>, <Response [302]>]
#可以看到該請求做了多次重定向
3、Python+requests獲取重定向的url地址:

import requests
url = ‘http://home.cnblogs.com/u/xswt/’
r = requests.get(url,headers={“Content-Type”:“application/json”})
reditList = r.history#可以看出獲取的是一個地址序列
print(f’獲取重定向的歷史記錄:{reditList}’)
print(f’獲取第一次重定向的headers頭部信息:{reditList[0].headers}’)
print(f’獲取重定向最終的url:{reditList[len(reditList)-1].headers[“location”]}’)

運行結果:
獲取重定向的歷史記錄:[<Response [301]>, <Response [302]>, <Response [302]>, <Response [302]>]
獲取第一次重定向的headers頭部信息:{‘Date’: ‘Fri, 06 Sep 2019 06:53:05 GMT’, ‘Content-Length’: ‘0’, ‘Connection’: ‘keep-alive’, ‘Location’: ‘https://home.cnblogs.com/u/xswt/’}
獲取重定向最終的url:https://account.cnblogs.com/signin?returnUrl=http%3a%2f%2fhome.cnblogs.com%2fu%2fxswt%2f
4、Python+requests重啓和禁止重定向

‘’’
禁止重定向(all_redirects=False)
‘’’
import requests
url = ‘http://home.cnblogs.com/u/xswt/’
r = requests.get(url,headers={“Content-Type”:“application/json”},allow_redirects=False)
print(r.status_code)
print(r.text)
複製代碼
運行結果:

301

‘’’
重啓重定向
‘’’
import requests
url = ‘https://www.csdn.net/’
r = requests.get(url,headers={“Content-Type”:“application/json”},allow_redirects=True)
print(r.status_code)
print(r.text)

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章