十年网站开发经验 + 多家企业客户 + 靠谱的建站团队
量身定制 + 运营维护+专业推广+无忧售后,网站问题一站解决
1.URLError
在澄城等地区,都构建了全面的区域性战略布局,加强发展的系统性、市场前瞻性、产品创新能力,以专注、极致的服务理念,为客户提供做网站、网站制作 网站设计制作定制网站建设,公司网站建设,企业网站建设,品牌网站制作,成都全网营销,外贸营销网站建设,澄城网站建设费用合理。
import urllib2
if name== ' main' :
url = 'http://www.567.com'
req = urllib2.Request(url)
try:
response = urllib2.urlopen(req)
#print response
html = response.read().decode('utf-8')
print html
except urllib2.URLError as e :
print e.reason
结果 :
URLError
[Errno 11004] getaddrinfo failed
2.HTTPError
import urllib2
if name== 'main' :
url = 'http://money.163.com/stocks/'
req = urllib2.Request(url)
try:
response = urllib2.urlopen(req)
#html = response.read()
except urllib2.HTTPError as e:
print e.code
结果:404
3,URLError和HTTPError混合使用
如果想用HTTPError和URLError一起捕获异常,那么需要将HTTPError放在URLError的前面,因为HTTPError是URLError的一个子类。如果URLError放在前面,出现HTTP异常会先响应URLError,这样HTTPError就捕获不到错误信息了。
一种方法:
import urllib2
if name== 'main' :
url = 'http://news.baidu.net'
req = urllib2.Request(url)
try :
response = urllib2.urlopen(req)
html = response.read().decode('utf-8')
print html
except urllib2.HTTPError as e:
print 'HTTPError'
print e.code
except urllib2.URLError as e:
print 'URLError'
print e.reason
二种方法使用函数hasattr():
if __name__ == '__main__' :
url = 'http://www.567.com'
req = urllib2.Request(url)
try:
response = urllib2.urlopen(req)
html = response.read().decode('utf-8')
print html
except urllib2.URLError as e :
if hasattr(e,'code') :
print 'HTTPError'
print e.code
elif hasattr(e,'reason') :
print 'URLError'
print e.reason