【发布时间】:2009-11-26 22:00:00
【问题描述】:
urllib/urllib2 的正常行为是,如果在响应的标头中发送错误代码(即 404),则会引发异常。
您如何查找特定错误,即(40 倍或 50 倍)基于不同的错误,做不同的事情。另外,您如何读取返回的 HTML/JSON 等实际数据(数据通常具有与 HTML 错误代码不同的错误详细信息)
【问题讨论】:
标签: python error-handling
urllib/urllib2 的正常行为是,如果在响应的标头中发送错误代码(即 404),则会引发异常。
您如何查找特定错误,即(40 倍或 50 倍)基于不同的错误,做不同的事情。另外,您如何读取返回的 HTML/JSON 等实际数据(数据通常具有与 HTML 错误代码不同的错误详细信息)
【问题讨论】:
标签: python error-handling
当发生 HTTP 错误时,urllib2 会引发 HTTPError。您可以在异常对象上使用code 获取响应代码。您可以使用read()获取响应数据:
【讨论】:
URLError 没有code 属性和read() 方法本身,但只有它的子类HTTPError 有。
在urllib2HTTPError异常也是一个有效的HTTP响应,所以你可以把一个HTTP错误当作一个异常事件或有效响应。但在urllib 中,您必须继承 URLopener 并定义 http_error_<code> 方法[s] 或重新定义 http_error_default 来处理它们。
【讨论】: