Python urllib2:甚至在HTTPErrorexception期间读取内容主体?

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

尽pipe例外,我如何返回文档内容?

您可以将错误视为回复。

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

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

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