python中的requests库极大的方便了采集中的网络请求,但是在采集中会遇到一种比较极端的情况:请求的读取超时。这种情况呀怎么解决?
问题现场
多线程批量采集的过程中,会有一些线程长时间卡死,也不抛出错误也不停止,后来发现是读取内容很慢时间很长,本来想通过结束线程来断开这个连接,但是终止一个python的线程并不那么简单,我搜遍了全网询问了AI,并没有什么满意的结果。所以只好从requests.get()下手了,看是只发现了一个连接超时的设置方法:
response = requests.get(feed_url, timeout=5)
这段代码的意思是连接超时就会抛出错误,我们使用try就可以捕获进行相关的操作,但是我需要的读取超时!
问题解决
后来在网上搜到timeout还可以设置一个元组,例如:
response = requests.get(feed_url, timeout=(5,5))
切记,后边的那个5,就是读取超时!至此,连接后读取时间过长的问题就可以抛出了。