首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Python urllib2:即使在HTTPError异常期间也能读取内容正文?

Python urllib2:即使在HTTPError异常期间也能读取内容正文?
EN

Stack Overflow用户
提问于 2009-11-03 05:23:28
回答 3查看 28.5K关注 0票数 77

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

异常情况下如何退回单据内容?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2009-11-03 05:26:41

您可以将该错误视为响应。

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

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

票数 54
EN

Stack Overflow用户

发布于 2009-11-03 06:15:14

代码语言:javascript
复制
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
票数 89
EN

Stack Overflow用户

发布于 2020-12-18 22:55:09

您可以read来自HTTPError异常的响应消息。

Python3示例

代码语言:javascript
复制
import urllib.request

try:
    request = urllib.request.Request('http://httpstat.us/418', headers={'Accept': 'text/plain', 'User-Agent': ''})
    with urllib.request.urlopen(request) as page:
        print('success: ' + page.read().decode())
except urllib.error.HTTPError as httpError:
        error = httpError.read().decode()
        print('error: ' + error)
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1663790

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档