.
.
python
爬虫常见异常
每个程序都不可避免地要进行异常处理,
爬虫也不例外,
假如不进行异常处
理,可能导致爬虫程序直接崩掉。以下是网络爬虫出现的异常种类。
URLError
通常,
URLError
在没有网络连接
(
没有路由到特定服务器
)
,或者服务器不
存在的情况下产生。
HTTPError
首先我们要明白服务器上每一个
HTTP
应答对象
response
都包含一个数
字
“状态码”
,
该状态码表示
HTTP
协议所返回的响应的状态,
这就是
HTTPError
。
比如当产生“
404
Not
Found
”的时候,便表示“没有找到对应页面”,可能
是输错了
URL
地址,也可能
IP
被该网站屏蔽了,这时便要使用代理
IP
进行爬
取数据。
两者关系
两者是父类与子类的关系,
即
HTTPError
是
URLError
的子类,
HTTPError
有异常状态码与异常原因,
URLError
没有异常状态码。所以,我们在处理的时
候,不能使用
URLError
直接代替
HTTPError
。同时,
Python
中所有异常都是
基类
Exception
的成员,所有异常都从此基类继承,而且都在
exceptions
模块
中定义。如果要代替,必须要判断是否有状态码属性。