异 常 处 理

URLError:通常服务器不存在或者没有网络连接时会引发这个异常
HTTPError:python默认会自动帮你处理重定向方面的内容(状态码300-399),状态码100-299的范围表示成功,你需要关注的是400-599这个范围的状态码,因为它们代表响应出了问题

(4xx是客户端的问题,5xx是服务器方面问题)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
from urllib.request import Request,urlopen
from urllib.error import URLError

req = Request(someurl)
try:
response = urlopen(req)
except URLError as e:
if hasattr(e,'reason'):
print('We failed to reach a server')
print('Reason:',e.reason)
elif hasattr(e,'code'):
print*('The server couldn't fulfill the request.')
print('Error code:',e.code)
else:
#everything is fine