python urllib.request中的HTTPerror

python urllib.request中的HTTPerror,python,python-requests,urllib,Python,Python Requests,Urllib,我正在使用urllib.request.urlopen打开一个url 引发了以下异常 http_error_default raise HTTPError(req.full_url, code, msg, hdrs, fp) HTTPError 我浏览了请求库的文档 *异常urllib.error.HTTPError 虽然HTTPError是一个异常(URLError的子类),但它也可以作为一个非异常的类似文件的返回值(与urlopen()返回的内容相同)。这在处理外来HTT

我正在使用urllib.request.urlopen打开一个url

引发了以下异常

    http_error_default
    raise HTTPError(req.full_url, code, msg, hdrs, fp)

HTTPError
我浏览了请求库的文档

*异常urllib.error.HTTPError

虽然HTTPError是一个异常(URLError的子类),但它也可以作为一个非异常的类似文件的返回值(与urlopen()返回的内容相同)。这在处理外来HTTP错误(如身份验证请求)时非常有用

代码

RFC 2616中定义的HTTP状态代码。此数值对应于在http.server.BaseHTTPRequestHandler.responses中的代码字典中找到的值

理由

这通常是解释此错误原因的字符串。 标题 导致HTTPError的HTTP请求的HTTP响应头*

但在我的例子中,没有错误代码或字符串给出异常的原因。

如果捕捉到异常,您可以看到原因,如下所示:

try:      
    urllib.request.urlopen(req) 
except urllib.error.HTTPError as e:     
    print(e.reason)