Python urllib2:甚至在HTTPError异常期间读取内容体?

jam*_*ieb 70 python

我正在使用urllib2通过HTTP获取页面.当我的请求包含错误时,有时资源会抛出HTTP错误400(错误请求).但是,该响应还包含一个XML元素,该元素提供详细的错误消息.能够看到该错误而不仅仅是urllib2返回的HTTPError异常会非常方便.

尽管有例外,我如何退回文件内容?

Ten*_*she 80

import urllib2
try:
    request = urllib2.Request('http://www.somesite.com')
    response = urllib2.urlopen(req)
except urllib2.HTTPError as e:
    error_message = e.read()
    print error_message
Run Code Online (Sandbox Code Playgroud)


Gar*_*son 52

您可以将错误视为回复.

http://www.voidspace.org.uk/python/articles/urllib2.shtml#httperror

当引发错误时,服务器通过返回HTTP错误代码和错误页面来响应.您可以使用HTTPError实例作为返回页面的响应.这意味着除了code属性外,它还具有read,geturl和info方法.