爬虫相关的异常一般分为两类,一类是URLError,另一类是HTTPError。
1.URLError
#导入相关包
from urllib import request, error
#通过try catch捕获相关异常 网址中忘记了//
try:
response = request.urlopen('http:www.baidu.com',timeout=5)
except error.URLError as e:
print(e.reason)
相应的报错信息如下:no host given
2.HTTPError 其实HTTPError是URLError的子类专门用来处理HTTP请求的错误。
#导入包
from urllib import request,error
#try会发现不存在网页的错误(404),并且会被捕获
try:
response = request.urlopen('https://blog.youkuaiyun.com/1.html')
except error.HTTPError as e:
print(e.reason, e.code, e.headers)
except error.URLError as e:
print(e.reason)
else:
print('访问成功!')
访问的页面不存在会首先被HTTPError捕获,其它异常会被URLError捕获