Bac*_*kus 72 python urllib urllib2 http-error
我收到"HTTP错误500:内部服务器错误"响应,但我仍然想读取错误HTML中的数据.
使用Python 2.6,我通常使用以下方法获取页面:
import urllib2
url = "http://google.com"
data = urllib2.urlopen(url)
data = data.read()
Run Code Online (Sandbox Code Playgroud)
当尝试在失败的URL上使用它时,我得到异常urllib2.HTTPError
:
urllib2.HTTPError: HTTP Error 500: Internal Server Error
Run Code Online (Sandbox Code Playgroud)
如何urllib2
在返回内部服务器错误时获取此类错误页面(有或没有)?
请注意,对于Python 3,相应的例外是urllib.error.HTTPError
.
Joe*_*way 136
这HTTPError
是一个类似文件的对象.你可以捕获它,然后read
它的内容.
try:
resp = urllib2.urlopen(url)
contents = resp.read()
except urllib2.HTTPError, error:
contents = error.read()
Run Code Online (Sandbox Code Playgroud)
如果你的意思是你想读500的身体:
request = urllib2.Request(url, data, headers)
try:
resp = urllib2.urlopen(request)
print resp.read()
except urllib2.HTTPError, error:
print "ERROR: ", error.read()
Run Code Online (Sandbox Code Playgroud)
在您的情况下,您不需要构建请求.做就是了
try:
resp = urllib2.urlopen(url)
print resp.read()
except urllib2.HTTPError, error:
print "ERROR: ", error.read()
Run Code Online (Sandbox Code Playgroud)
所以,你不要覆盖urllib2.HTTPError,你只需处理异常.
归档时间: |
|
查看次数: |
45065 次 |
最近记录: |