抱歉,对于初学者的问题。我只是在学习如何使用Python访问Web数据,并且在理解requests
程序包中的异常处理时遇到了麻烦。
到目前为止,当使用该urllib
程序包访问Web数据时,我将urlopen
调用包装在try / except结构中以捕获错误的URL,如下所示:
import urllib, sys
url = 'https://httpbinTYPO.org/' # Note the typo in my URL
try: uh=urllib.urlopen(url)
except:
print 'Failed to open url.'
sys.exit()
text = uh.read()
print text
显然,这是一种粗略的方法,因为它可以掩盖URL错误以外的所有问题。
从文档中可以看出,使用该requests
包时可以避免使用try / except结构,如下所示:
import requests, sys
url = 'https://httpbinTYPO.org/' # Note the typo in my URL
r = requests.get(url)
if r.raise_for_status() is not None:
print 'Failed to open url.'
sys.exit()
text = r.text
print text
但是,这显然不起作用(引发错误和回溯)。什么是做到这一点的“正确”(即简单,优雅,Python式)方法?
尝试捕获连接错误:
from requests.exceptions import ConnectionError
try:
requests.get('https://httpbinTYPO.org/')
except ConnectionError:
print 'Failed to open url.'
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句