当前位置: 首页 > 面试题库 >

覆盖urllib2.HTTPError或urllib.error.HTTPError并始终读取响应HTML

全彬
2023-03-14
问题内容

我收到“ HTTP错误500:内部服务器错误”响应,但是我仍然想读取错误HTML中的数据。

使用Python 2.6,我通常使用以下命令获取页面:

import urllib2
url = "http://google.com"
data = urllib2.urlopen(url)
data = data.read()

尝试在失败的URL上使用它时,出现异常urllib2.HTTPError

urllib2.HTTPError: HTTP Error 500: Internal Server Error

如何urllib2返回内部服务器错误的同时获取此类错误页面(带有或不带有)?

请注意,在Python 3中,相应的例外是urllib.error.HTTPError


问题答案:

HTTPError
是一个类似文件的对象。您可以先捕获它,然后捕获它read的内容。

try:
    resp = urllib2.urlopen(url)
    contents = resp.read()
except urllib2.HTTPError, error:
    contents = error.read()


 类似资料:
  • 问题内容: 在编写自己的类时,是否总是有必要重写? 如果我不这样做,它将自动检查所有字段是否相同?还是只是检查两个变量是否指向同一个对象? 问题答案: 如果正在编写将要以某种方式比较其对象的类,则应重写和方法。 不提供显式方法将导致从超类继承该方法的行为,并且在超类为类的情况下,它将成为Java API规范中针对该类设定的行为。 提供方法的一般约定可以在该类的文档中找到,特别是and 方法的文档。

  • 我有一个项目,使用SonarQube来分析我的代码。正如标题所示,尽管我有多个JUnit测试,但在SQ报告(在我的服务器上)中覆盖率指标总是显示为0。我目前运行以下命令 在詹金斯建立我的项目时(詹金斯·马文项目)。 我有类似的问题前一段时间在不同的项目。我设法通过这篇文章解决了它。然而,这一次却无济于事。搜索了一下,找到了第1条和第2条(还有一些想法类似的)。两人都提出了一些好建议,但不幸的是,没

  • 我正在为我的RESTful API使用FOS Rest捆绑包,我想覆盖从我的ApiController返回的响应,例如: PHP 我想要的是向返回的响应添加额外的数据,因此我想要截获这些响应并根据某些条件覆盖它们。 我想要api返回的最终结果:

  • 我正在建立一个新的android项目并使用改版,我的改版功能在模拟器(NOX)和邮递员中正常工作,但是当我尝试在移动设备中构建我的应用程序时,改版总是陷入失败,有人能给我解决方案吗?我的API发布在公共主机上, 这就是我所说的改装 我的回应 这是我的邮差回复

  • 问题内容: 除了主应用程序外,我的项目中还有两个分别用于单元测试和UI测试的目标。这两个目标有不同的方案,因此我可以在CI服务器上分别运行它们。我在这两个方案中都选中了“收集代码覆盖率”。最初,我通过使用“ Cmd + U”分别构建和运行这两个方案来确保所有功能都在XCode中正常工作,并且对于这两个方案,覆盖数据均正确显示。 在我的Jenkins CI中,我使用快速通道为这两种方案提供了单独的工

  • 我目前正在创建一个gRPC服务,该服务使用gRPC网关/HTTP反向代理也提供HTTP支持。我想遵循谷歌API设计的常见惯例。 我在Google API设计指南中找到的示例使用了Google。protobuf。清空删除方法/RPC响应的消息。这很好,但是当我生成一个