热门IT资讯网

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
0