urllib/urllib2返回的错误代码和实际页面

ism*_*ail 4 python error-handling

urllib/urllib2的正常行为是,如果在响应的标头中发送错误代码(即404),则引发异常.

你如何根据不同的错误寻找特定的错误,即(40x或50x),做不同的事情.另外,如何读取返回的实际数据HTML/JSON等(数据通常包含与HTML错误代码不同的错误详细信息)

Dom*_*ger 9

HTTPError当HTTP错误发生时,urllib2会引发一个问题.您可以使用code异常对象获取响应代码.您可以使用read()以下方式获取响应数据:

>>> req = urllib2.Request('http://www.python.org/fish.html')
>>> try:
>>>     urllib2.urlopen(req)
>>> except urllib2.HTTPError, e:
>>>     print e.code
>>>     print e.read()
>>>
404
<actual data response will be here>