我们在爬虫的时候发请求的时候难免出现错误,如访问不到服务器或者访问被禁止等等,
出错了之后urllib将错误信息封装成了一个模块对象中,这个模块就叫error模块
分为URLError和HTTPError。
URLError是OSError的一个子类
有以下错误的时候错误信息就会被封装在URLError里:
而如果能够连接服务器但是服务器返回了错误代码如404,403等等(400以上),那么催无信息就会被封装在HTTPError里
区别:
关系:
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的上面