網路爬蟲處理異常的種類

2021-08-29 16:00:23 字數 571 閱讀 2310

每個程式都不可避免地要進行異常處理,爬蟲也不例外,假如不進行異常處理,可能導致爬蟲程式直接崩掉。以下是網路爬蟲出現的異常種類。

urlerror

通常,urlerror在沒有網路連線(沒有路由到特定伺服器),或者伺服器不存在的情況下產生。

首先我們要明白伺服器上每乙個http 應答物件response都包含乙個數字「狀態碼」,該狀態碼表示http協議所返回的響應的狀態,這就是httperror。比如當產生「404 not found」的時候,便表示「沒有找到對應頁面」,可能是輸錯了url位址,也可能ip被該**遮蔽了,這時便要使用**ip進行爬取資料。

兩者關係

兩者是父類與子類的關係,即httperror是urlerror的子類,httperror有異常狀態碼與異常原因,urlerror沒有異常狀態碼。所以,我們在處理的時候,不能使用urlerror直接代替httperror。同時,python中所有異常都是基類exception的成員,所有異常都從此基類繼承,而且都在exceptions模組中定義。如果要代替,必須要判斷是否有狀態碼屬性。

網路爬蟲異常處理總結

在進行大規模網路爬蟲的時候,經常會遇到爬了一會突然丟擲乙個錯誤來,然後整個程式就停止了執行。而我們在處於學習爬蟲初期的同胞,比如我,一旦出現程式錯誤停止,就不知道如何在修改程式後接著剛剛爬取的位置繼續爬取。就算是我們做了比較好的日誌輸出,知道是再爬取到哪一頁時出現問題,但也不得不在這一頁或者這一頁的...

爬蟲異常處理

狀態碼 含義200 成功 成功 伺服器已成功處理了請求。通常,這表示伺服器提供了請求的網頁 301 永久移動 請求的網頁已永久移動到新位置。伺服器返回此響應 對 get 或 head 請求的響 應 時,會自動將請求者轉到新位置。302 臨時移動 伺服器目前從不同位置的網頁響應請求,但請求者應繼續使用...

爬蟲異常處理

在這個模組中 urllib.error urlerror httperror都是異常處理類,為了讓 更加的健壯 exception 官方的異常基類,所有的異常類都是直接或者間接的繼承這個類 urlerror 如果斷網或者主機不存在 httperror 請求的資源不存在,比如404 urlerror可...