【摘要】 为什么需要缓存?
在做大并发爬虫的时候,我们的代码始终还是脆弱的,不论我们如何在try···except···中去调整代码的健壮性,大前提也是这个程序得正常的执行完啊。 那如果执行过程中,服务崩了?怎么办?都已经爬了十万条了,就剩五万条了,但是又不知道剩下的是哪五万条,大并发都是用线程池或者协程来爬,无序的啊!!!
重爬?我都等了两个小时了你让我重爬?我忍不了!!!…
为什么需要缓存?
在做大并发爬虫的时候,我们的代码始终还是脆弱的,不论我们如何在try···except···中去调整代码的健壮性,大前提也是这个程序得正常的执行完啊。
那如果执行过程中,服务崩了?怎么办?都已经爬了十万条了,就剩五万条了,但是又不知道剩下的是哪五万条,大并发都是用线程池或者协程来爬,无序的啊!!!
重爬?我都等了两个小时了你让我重爬?我忍不了!!!
requests-cache
底层原理
requests-cache是requests模块的拓展功能,背后的原理是通过requests模块发送请求来生成相应的缓存数据。当requests重复向一个URL发送请求的时候,requests-cache会判断当前请求是否已经产生缓存,如果是,则直接从缓存中读取出数据作为响应内容。
Requests-Cache的缓存支持如下:
数据库 | 说明 |
---|---|
memory | 每次程序运行都会将缓存以字典的形式保存在内存中,程序运行完毕,缓存也随之销毁。 |
sqlite | 将缓存存储在sqlite数据库,这是Requests-Cache默认的存储机制。 |
redis | 将缓存存储在redis数据库,通过redis模块实现数据库的读写。 |
mongoDB | 将缓存存 |
© 版权声明
文章版权归作者所有,未经允许请勿转载。
THE END
喜欢就支持一下吧
相关推荐