爬蟲之urllib.error模塊


error模塊簡介

我們在爬蟲的時候發請求的時候難免出現錯誤,如訪問不到服務器或者訪問被禁止等等,

出錯了之后urllib將錯誤信息封裝成了一個模塊對象中,這個模塊就叫error模塊

error的分類

分為URLError和HTTPError。

URLError是OSError的一個子類

有以下錯誤的時候錯誤信息就會被封裝在URLError里:

  1. 無網絡
  2. 有網絡但是由於種種原因導致服務器連接失敗

而如果能夠連接服務器但是服務器返回了錯誤代碼如404,403等等(400以上),那么催無信息就會被封裝在HTTPError里

URLError與HttpError的區別和關系

區別:

  • URLError封裝的錯誤信息一般是由網絡引起的,包括url錯誤
  • HTTPError封裝的錯誤信息一般是服務器返回了錯誤狀態碼

關系:

  • URLError是OSERROR的子類,HTTPError是URLError的子類

使用方法

error類是在捕獲錯誤信息的時候使用,而且一般我們也需要進行捕獲,因為你很難確定訪問請求一定不會出現錯誤

from urllib import request
from urllib import error

url = 'http://baiduuuu.com'

try:
    res = request.Request(url)
    response = request.urlopen(res)

    print(response.read().decode())

except error.HTTPError as he:
    print(he)
    # print(he.reason)

except error.URLError as ue:
    print(ue)
    # print(ue.reason)

except Exception as e:
    print(e)

注意:由於HTTPError是URLError的子類,所以捕獲的時候HTTPError要放在URLError的上面

 
 
 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM