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:




你可能感兴趣的:(爬虫)