python请求缓存苦-让你多次请求不在被封IP

在python2的时候,我们使用python发送请求的时候,大多数使用过的是urllib,urllib2这个库,python3的时候使用urllib3,一般来说使用这两个库就可以轻松的请求任何资源,然而,有个小伙子觉得这些都不够优雅,于是他自己封装了一个python 网络请求库,这个库就是大名鼎鼎的requests.用过这个库一次之后,你就会发现,它真的是太好用了。

然而,当我们享受网络请求的美妙的时候,有时候经常会发现由于我们频繁请求导致,我们的ip被服务器给封禁了,这个时候,一个非常好用的请求缓存库诞生了,他就是request-cache这个库,使用它你可以缓存你的请求结果,避免了因为多次请求导致被封禁ip的下场。

安装也非常简单,需要说明的是它是一个依赖requests的库。

pip install requests-cache

使用方法:

import requests
import requests_cache

requests_cache.install_cache('test_cache', backend='sqlite', expire_after=300)
for i in range(10):
    requests.get('http://httpbin.org/delay/1')

执行上面的代码,它会创建一个test_cache的sqlite数据库,然后在300秒内对同一个url进行请求,它会缓存结果,所以你会发现,请求10次的结果所用的时间和1次几乎是一样的,因为剩下的几次它使用的是缓存。