gpt4 book ai didi

python - 当 urllib2.urlopen 抛出异常时捕获响应正文

转载 作者:行者123 更新时间:2023-12-04 09:44:41 25 4
gpt4 key购买 nike

我正在发出 GET,并且收到 503 代码。

从 Chrome 调试器的网络选项卡中,我看到了代码和响应(这就是我所追求的)。

但是,当通过 Python 进行此调用时,会引发 HTTPError,我看到错误代码,但没有看到响应。

如何捕获通过浏览器获得的响应?

request = urllib2.Request(url, headers={'User-Agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_10_1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/39.0.2171.95 Safari/537.36'})
r = urllib2.urlopen(request,timeout=30)

最佳答案

documentation for urllib2.HTTPError说:

Though being an exception (a subclass of URLError), an HTTPError can also function as a non-exceptional file-like return value (the same thing that urlopen() returns).



也就是说,如果你捕获 HTTPError ,您可以调用 .read()在上面。


request = urllib2.Request(url, ...)
try:
r = urllib2.urlopen(request,timeout=30)
except urllib2.HTTPError as he:
print(he.reason)
print(he.read())
raise

作为旁白,
  • 您应该停止使用已停产的 Python 2.7 并改用 Python 3
  • requests library使得处理 HTTP 的所有怪癖和功能变得更好。
  • 关于python - 当 urllib2.urlopen 抛出异常时捕获响应正文,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62188562/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com