八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库基本使用详解(爬虫,urlopen,request,代理ip的使用,cookie解析,异常处理,URL深入解析)