八urllib库处理异常

Posted mr-chenshuai

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了八urllib库处理异常相关的知识,希望对你有一定的参考价值。

 

处理异常

urllib的error模块定义了由request模块产生的异常

 

1、URLError

URLError类来自urllib库的error模块,继承自OSError类,是error异常模块的基类,由request模块产生的异常都可以通过捕获这个类来处理

它具有一个属性:reason,返回的错误原因

技术分享图片

 

打开一个不存在的网页,应该是会报错的,但是我们捕获了URLError异常,程序没有报错,而是输出了错误内容

技术分享图片

 

 

 

2、HTTPError

它是URLError的子类,专门处理HTTP请求错误,有3个属性

code:返回HTTP状态码

reason:同父类一样,返回错误的原因

headers:返回请求头

技术分享图片

 输出结果

 技术分享图片

由于URLError是HTTPError的父类,所有可以先捕获子类的错误,再捕获父类的错误,上面代码更好的写法:

这样就可以先捕获到HTTPError,如果不是HTTPError异常,就捕获URLError异常

 技术分享图片

reason有时候返回的不是一个字符串,可能是一个对象

技术分享图片

技术分享图片

reason属性是结果是socket.timeout类

 

以上是关于八urllib库处理异常的主要内容,如果未能解决你的问题,请参考以下文章

七urllib库

urllib库详解

urllib库解析

爬虫第一篇基本库的使用——urllib

Urllib库基本使用详解(爬虫,urlopen,request,代理ip的使用,cookie解析,异常处理,URL深入解析)

urllib库