1.URLError
出现该错误的原因有:
- 网络无连接,即本机无法上网
- 连接不到特定的服务器
服务器不存在
用try-except语句来包围捕获异常。
import urllib2
request = urllib2.Request('http://www.xxxxx.com')
try:
urllib2.urlopen(request)
except urllib2.URLError, e:
print e.reason
2.HTTPError
HTTPError是URLError的子类,在你利用urlopen方法发出一个请求时,服务器上都会对应一个应答对象response,其中它包含一个数字”状态码”。HTTPError实例产生后会有一个code属性,这就是是服务器发送的相关错误号。
import urllib2
req = urllib2.Request('http://blog.youkuaiyun.com/cqcre')
try:
urllib2.urlopen(req)
except urllib2.HTTPError, e:
print e.code
print e.reason
运行结果:
403
Forbidden
还可以加入 hasattr属性提前对属性进行判断,代码改写如下:
import urllib2
req = urllib2.Request('http://blog.youkuaiyun.com/cqcre')
try:
urllib2.urlopen(req)
except urllib2.URLError, e:
if hasattr(e,"reason"):
print e.reason
else:
print "OK"