我收到“ HTTP错误500:内部服务器错误”响应,但是我仍然想读取错误HTML中的数据。
使用Python 2.6,我通常使用以下命令获取页面:
import urllib2 url = "http://google.com" data = urllib2.urlopen(url) data = data.read()
尝试在失败的URL上使用它时,出现异常urllib2.HTTPError:
urllib2.HTTPError
urllib2.HTTPError: HTTP Error 500: Internal Server Error
如何urllib2在返回内部服务器错误的同时获取此类错误页面(带有或不带有)?
urllib2
请注意,在Python 3中,相应的例外是urllib.error.HTTPError。
urllib.error.HTTPError
该HTTPError 是一个类似文件的对象。您可以先捕获它,然后捕获它read的内容。
HTTPError
read
try: resp = urllib2.urlopen(url) contents = resp.read() except urllib2.HTTPError, error: contents = error.read()