从零开始,学会Python爬虫不再难!!! -- (10)爬虫缓存丨蓄力计划
【摘要】 为什么需要缓存?
在做大并发爬虫的时候,我们的代码始终还是脆弱的,不论我们如何在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 | 将缓存存 |
文章来源: lion-wu.blog.csdn.net,作者:看,未来,版权归原作者所有,如需转载,请联系作者。
原文链接:lion-wu.blog.csdn.net/article/details/116197264
【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱:
cloudbbs@huaweicloud.com
- 点赞
- 收藏
- 关注作者
作者其他文章
评论(0)