1、首先看下面代碼的運行情況
import requests res = requests.get("https://www.csdn.net/eee", headers=headers, timeout=1) res.encoding = "utf8" print(res.status_code) print(res.text)
運行結果:
可見requests請求可以正常返回狀態碼以及html文本,並沒有報錯。狀態碼只是服務器響應的結果,而錯誤的狀態碼也是正常的響應結果。
加上try…except…再看看:
沒有任何異常!響應狀態碼為404!
加上raise_for_status(),觀察運行結果:
此時被拋出404錯誤!
由此可見一個錯誤請求(一個 4XX 客戶端錯誤,或者 5XX 服務器錯誤響應),我們必須要通過使用raise_for_status() 才能拋出異常!
加上try…except…
此時拋出的異常並被第一個 requests.HTTPError 異常捕獲。