人生苦短,我用 Python
引言
前面两篇基础,我们介绍请求发送的过程。
不知道各位同学有没有想过这样一个问题,如果在爬虫运行的过程中,网络突然波动了下,比如突然网速很慢很慢,造成当前的请求超时,程序很可能会直接挂掉。
这种处理方式显然不是我们希望看到的,我们希望看到的肯定是如果当前的请求挂掉,那就挂掉,不要影响其他的请求或者是下一次的请求。
那么,我们在发送请求的时候,异常处理就显得十分有必要。
urllib 的 error 模块定义了由 request 模块产生的异常,如果出现问题, request 模块便会抛出 error 模块中定义的异常。
URLError
URLError 这个类来自于 urllib 库的 error 模块,它继承自 OSError ,是 error 异常模块的基类,由 request 模块产生的异常都可以通过捕获这个类来处理。
它只有一个属性 reason ,即返回错误的原因。
我们来写一个简单的示例大家看一下:
from urllib import request, error
# 访问明显不存在的地址,报错:Not