python爬虫之路2-urllib2 的异常错误处理(HTTP异常响应码大全)

urllib2 的异常错误处理

在我们用urlopen或opener.open方法发出一个请求时,如果urlopen或opener.open不能处理这个response,就产生错误。这里主要说的是URLError和HTTPError,以及对它们的错误处理。

URLError

URLError 产生的原因主要有:

  • 没有网络连接
  • 服务器连接失败
  • 找不到指定的服务器

我们可以用try except语句来捕获相应的异常。下面的例子里我们访问了一个不存在的域名:

python爬虫之路2-urllib2 的异常错误处理(HTTP异常响应码大全)

运行结果如下:

urlopen error,错误代码8,错误原因是没有找到指定的服务器。

HTTPError

  1. HTTPError是URLError的子类,我们发出一个请求时,服务器上都会对应一个response应答对象,其中它包含一个数字"响应状态码"。
  2. 如果urlopen或opener.open不能处理的,会产生一个HTTPError,对应相应的状态码,HTTP状态码表示HTTP协议所返回的响应的状态。
  3. 注意,urllib2可以为我们处理重定向的页面(也就是3开头的响应码),100-299范围的号码表示成功,所以我们只能看到400-599的错误号码。
python爬虫之路2-urllib2 的异常错误处理(HTTP异常响应码大全)

运行结果:

python爬虫之路2-urllib2 的异常错误处理(HTTP异常响应码大全)

HTTP Error,错误代号是404,错误原因是Not Found,说明服务器无法找到被请求的页面。

通常产生这种错误的,要么url不对,要么ip被封。

由于HTTPError的父类是URLError,所以父类的异常应当写到子类异常的后面,所以上述的代码可以这么改写:

python爬虫之路2-urllib2 的异常错误处理(HTTP异常响应码大全)

运行结果:404,这样我们就可以做到,首先捕获子类的异常,如果子类捕获不到,那么可以捕获父类的异常。

HTTP响应状态码参考:

python爬虫之路2-urllib2 的异常错误处理(HTTP异常响应码大全)

python爬虫之路2-urllib2 的异常错误处理(HTTP异常响应码大全)

python爬虫之路2-urllib2 的异常错误处理(HTTP异常响应码大全)

python爬虫之路2-urllib2 的异常错误处理(HTTP异常响应码大全)

python爬虫之路2-urllib2 的异常错误处理(HTTP异常响应码大全)

python爬虫之路2-urllib2 的异常错误处理(HTTP异常响应码大全)

python爬虫之路2-urllib2 的异常错误处理(HTTP异常响应码大全)

python爬虫之路2-urllib2 的异常错误处理(HTTP异常响应码大全)

python爬虫之路2-urllib2 的异常错误处理(HTTP异常响应码大全)

机器学习视频下载:关注发私信(机器学习)可获取下载链接

python爬虫之路2-urllib2 的异常错误处理(HTTP异常响应码大全)


分享到:


相關文章: