|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
使用异常处理方法:
from urllib.request import Request, urlopen
from urllib.error import URLError, HTTPError
req = Request('http://www.dmoz.org')
try:
response = urlopen(req)
except HTTPError as e: # 子类HTTPError必须写在URLError的前面!
print('The sever couldn\'t fulfill the request!')
print('Error code:', e.code)
except URLError as e:
print('We failed to reach a sever!')
print('Reason:', e.reason)
#else:
# Everything is fine
运行后返回如下结果:
The sever couldn't fulfill the request!
Error code: 400
错误代码400,按照小甲鱼教材所说,如果出现4xx的状态码,说明问题来自客户端(就是我们自己哪里做错了)?
------------------------------------------
以下根据小甲鱼在教材中所说整理:
HTTPError是URLError的子类。服务器上每一个HTTP的响应都包含一个数字的“状态码”,有时候状态码会指出服务器无法完成的请求类型,一般情况下Python会帮你处理一部分这类响应(例如:响应的是一个“重定向”,要求客户端从别的地址来获取文档,那么urllib会自动为你处理这个响应);但有些无法处理的就会抛出HTTPError异常,这些异常包括典型的404(页面无法找到)、403(请求禁止)、401(验证请求)。
---状态码范围100~299:表示成功访问
---状态码范围300~399:表示重定向方面的内容(Python默认会自动帮你处理)
---状态码范围400~599:表示响应出了问题(需要重点关注!)如果出现4xx的状态码,说明问题来自客户端(就是你自己哪里做错了);如果出现5xx的状态码,说明问题来自服务器(就是与你无关)
例如:
403 就是服务器拒绝客户请求,客户访问了不该访问的资源路径,又或者过于频繁被认为是恶意访问
404 就是资源找不到了,是因为你输入了一个错误的路径
所以 4 开头的主观上都是出在客户端这,不小心输错资源路径啥的
500 错误是服务器中代码出现错误,当然和你无关啦
其他的错误码可以去百度查查,我也只了解一些常用的
|
|