1. 程式人生 > >python3 爬取網頁的異常處理

python3 爬取網頁的異常處理

有時候python爬取的網頁會出現異常,我們需要新增異常處理

我們主要說明一下URLError和HTTPError

URLError

首先解釋下URLError可能產生的原因:

  • 網路無連線,即本機無法上網
  • 連線不到特定的伺服器
  • 伺服器不存在
HTTPError是URLError的子類,在你利用urlopen方法發出一個請求時,伺服器上都會對應一個應答物件response,其中它包含一個數字”狀態碼”,具體每個狀態碼代表什麼可以去網上查到。
from urllib import request
from urllib import error

if __name__ == '__main__':
    target_url = 'http://www.dubai.com/'
    try :
        res = request.urlopen(target_url)
    except error.URLError as e:
        if hasattr(e,"code"):
            print(e.code)
        if hasattr(e,"reason"):
            print(e.reason)
        else:
            print("OK")

因為HTTPerror是URLerror的子類,所以也可以被URLError獲取到,我們也可以分開獲取,再寫一個except error.HTTPError as e: