URLRequired
由于缺少网址导致的异常
TooManyRedirects
超过重定向的最大数量时发生异常
ConnectionTimeout
由于连接服务器超过预定时间而导致的异常
超时
从启动URL请求到获取URL请求的内容超过预定时间时,会生成异常
ConnectionTimeout和Timeout异常之间有一定的区别。超时是指从发送URL请求到获取内容的整个过程中的超时异常。 ConnectionTimeout仅引用与远程服务器连接期间的超时异常。
raise_for_status()方法
理解Response类非常重要。诸如Response之类的对象将返回所有Web内容,因此它还提供了一个称为raise_for_status()的方法。此方法专门用于处理异常。此方法具有如此有趣的特性,它可以确定返回的响应类型状态是否为200。如果为200,则表明返回的内容正确。如果不是200,则会生成HttpError。
那这个方法有什么用?
然后让我们看一下我们的通用代码框架:
>>> def getHTMLText(url):
try:
r = requests.get(url, timeout = 30)
r.raise_for_status()
r.encoding = r.apparent_encoding
return r.text
except:
return "产生异常"
在此代码中,我们使用r.raise_for_status()方法,该方法可以有效地判断网络连接的状态。如果网络连接中存在错误,它将使用try-except来获取异常。在这个异常部分,我们在异常部分使用了返回的“异常”来表示我们已经捕获了这个异常,因此这样的通用代码框架可以有效地处理它。它可能在我们访问或爬网网页时出现。由网络不稳定引起的某些错误或某些现象。
本文来自本站,转载请注明本文网址:
http://www.pc-fly.com/a/tongxingongju/article-326564-1.html
……