Python中Requests模組的異常值處理

2021-09-26 13:58:30 字數 1897 閱讀 9489

在我們用python的requests模組進行爬蟲時,乙個簡單高效的模組就是requests模組,利用get()或者post()函式,傳送請求。

————————————————

但是在真正的實際使用過程中,我們可能會遇到網路的各種變化,可能會導致請求過程發生各種未知的錯誤導致程式中斷,這就使我們的程式不能很好的去處理錯誤。所以為了使我們的程式在請求時遇到錯誤,可以捕獲這種錯誤,就要用到try…except方法,以及了解requests可能發生的各種錯誤。

伺服器在指定時間內沒有應答,丟擲requests.exceptions.connecttimeout

若分別指定連線和讀取的超時時間,伺服器在指定時間沒有應答,丟擲requests.exceptions.connecttimeout

**- timeout=([連線超時時間], [讀取超時時間]) 

- 連線:客戶端連線伺服器並並傳送http請求伺服器

- 讀取:客戶端等待伺服器傳送第乙個位元組之前的時間**

丟擲requests.exceptions.connectionerror

**伺服器拒絕建立連線,埠拒絕連線或未開放,丟擲requests.exceptions.proxyerror

**伺服器沒有響應requests.exceptions.connecttimeout

說明與**建立連線成功,**也傳送請求到目標站點,但是**讀取目標站點資源超時。即使**訪問很快,如果**伺服器訪問的目標站點超時,這個鍋還是**伺服器背 。假定**可用,timeout就是向**伺服器的連線和讀取過程的超時時間,不用關心**伺服器是否連線和讀取成功

可能是斷網導致,丟擲requests.exceptions.connectionerror

你可以告訴 requests 在經過以 timeout

引數設定的秒數時間之後停止等待響應。基本上所有的生產**都應該使用這一引數。如果不使用,你的程式可能會永遠失去響應:

遇到網路問題(如:dns 查詢失敗、拒絕連線等)時,requests 會丟擲乙個requests.exceptions.connectionerror異常。

如果 http 請求返回了不成功的狀態碼, response.raise_for_status() 會丟擲乙個httperror異常。

若請求超時,則丟擲乙個

timeout異常。

若請求超過了設定的最大重定向次數,則會丟擲乙個toomanyredirects異常。

所有requests顯式丟擲的異常都繼承自

requests.exceptions.requestexception

python中的requests模組

requests是用python實現的第三方http庫。post介面 結果 還有乙個簡單的示例 更新 傳送請求與傳遞引數 帶引數的get請求 impor requests r requests.get 最基本的get請求 print r.status code 獲取返回狀態碼 print r.url...

python中requests的安裝

本文主要說明了在自帶有pip的python中如何安裝requests。pip在大部分2.7或者3以上的python都已經自帶了。那麼如何判斷是否自帶有pip 在命令列 win r 中輸入 python m pip version 出現如下圖的提示,則表示自帶有pip 準備好pip之後,如果pytho...

python中requests小技巧

關於 python requests 在使用中,總結了一些小技巧把,記錄下。1 保持請求之間的cookies,我們可以這樣做。2 請求時,會加上headers,一般我們會寫成這樣 唯一不便的是之後的 每次都需要這麼寫,顯得臃腫,所以我們可以這樣 3 預設requests請求失敗後不會重試,但是我們跑...