紧接上一篇:Python3模块1之Urllib之 urllib.request
urllib.error
urllib.error模块定义由urllib.request引发的异常类。URLError 为基本的异常类。异常处理主要用到两个类,
urllib.error.URLError和urllib.error.HTTPError。
一. URLError
URLError 是 urrlib.error 异常类的基类,具有 reason属性,返回错误原因。可以捕获由 urllib.request 产生的异常。
常常产生 URLError 的原因可能有:
- 服务器连接失败
- 服务器不存在
- 远程 URL 地址不存在
- 触发了 HTTPError
下面是例1—-远程地址不存在:
from urllib import request, error
try:
response = request.urlopen('http://blog.csdn.net/qq_36148849.html')
except error.URLError as e:
print(e.reason)
输出结果1:
Not Found
实例1中,爬取的网页本身不存在。通过 urllib.error.URLError as e 捕获异常信息 e,然后对其进行相应的异常处理,并输出异常原因。
下面是例2—-触发HTTPError:
import urllib.request
import urllib.error
try:
req=urllib.request.urlopen('http://www.dianping.com/')
print(req.read())
except urllib.error.URLError as e:
print('code: ',e.code)
print('reason: ',e.reason)
输出结果2:
code: 403
reason: Forbidden
下面是例3—-远程服务器不存在:
from urllib import request, error
try:
response = request.urlopen('http://blog.baidu.net/')
except error.URLError

本文详细介绍了Python3的urllib.error模块,包括URLError和HTTPError异常的使用及处理。URLError是基础异常类,HTTPError是其子类,专门处理HTTP请求错误。在异常处理中,URLError能捕获HTTPError,但HTTPError不能处理所有URLError异常。最佳实践是同时处理两种异常,以确保全面的错误处理。示例代码展示了如何捕获和处理各种异常情况,如服务器不存在、连接失败、HTTP状态码错误等。
最低0.47元/天 解锁文章
6万+

被折叠的 条评论
为什么被折叠?



