python(二) urllib2.URLError
发表于:2024-11-30 作者:热门IT资讯网编辑
编辑最后更新 2024年11月30日,1.URLErrorimport urllib2if name == ' main' :url = 'http://www.567.com'req = urllib2.Request(url)try:
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 htmlexcept 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 htmlexcept urllib2.HTTPError as e: print 'HTTPError' print e.codeexcept 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 htmlexcept urllib2.URLError as e : if hasattr(e,'code') : print 'HTTPError' print e.code elif hasattr(e,'reason') : print 'URLError' print e.reason