request.error 模块
- URLError 产生的原因:
- 没网
- 服务器连接失败
- 不知道指定的服务器
- 是 OSError 的子类
HTTPError,是 URLError 的一个子类
案例
from urllib import request, error
def main():
url = "https://blog.csdn.net/xidianliutingting/article/details/53580569"
try:
req = request.Request(url)
rsp = request.urlopen(req)
html = rsp.read().decode()
print(html)
except error.HTTPError as e:
print('HTTPError: {0}'.format(e.reason))
print('HTTPError: {0}'.format(e))
except error.URLError as e:
print('URLerror:{0}'.format(e.reason))
print('URLerror:{0}'.format(e))
except Exception as e:
print('URLerror:{0}'.format(e))
if __name__ == '__main__':
main()
- URLError 和 HTTPError 两者的区别
- HTTPError 是对应的 HTTP 请求码错误, 如果返回码是 400 以上,则引发 HTTPError
- URLError 对应的一般是网络出现问题,包括 URL 问题
- 关系区别: OSError -> URLError -> HTTPError