超时设置
假设有个需求,我们要爬取1000个网站,如果其中有100个网站需要等待30s才能返回数据,那如果要返回所有的数据,至少需要等待3000秒。如此长时间的等待显然是不可行的,为此,我们可以为HTTP请求设置超时时间,一旦超过这个时间,服务器还没有返回响应内容,那么就会抛出一个超时异常,这个异常需要使用try语句来捕获。
例如,我们使用快代理(一个开放代理网站)中的一个IP,它的响应速度需要2秒。此时,如果将超时时间设置为1秒,那么程序会抛出异常。具体代码如下:
import urllib.request
try:
url = 'http://218.56.132.157:8080'
file = urllib.request.urlopen(url, timeout=1) # timeout设置超时的时间
result = file.read()
print(result)
except Exception as error:
print(error)
运行程序后,输出结果为:
<urlopen error timed out>