升级普通Scrapy为增量式爬虫(一)

根据一些业务需求,在爬虫的过程中由于一些网络或者人为的原因终止了爬虫流程,下次发起爬虫请求时,会重新开始,导致原来爬虫过的数据会重复爬取。
为了解决重复爬取,同时也是为了对爬取的数据进行一个筛选,就需要用到增量式爬虫。
增量式爬虫的意义在于,当爬虫流程中断后,下次爬虫请求会紧接着上次中断的地方进行爬取,上次爬取的数据,就不会再发送请求,提高爬虫效率。

增量式爬虫的方法:

第一种: 启用scrapy_redis

scrapy_redis分布式爬虫,在settings.py添加对应的配置,即可实现增量式爬虫。
由于redis增量式的局限性以及适用性太差,除非特定的分布式爬虫,普通的scrapy爬虫不推荐。

第二种:使用scrapy-deltafetch插件实现增量式爬虫

scrapy-deltafetch简介
scrapy-deltafetch通过Berkeley DB来记录爬虫每次爬取收集的request和item,当重复执行爬虫时只爬取新的item,实现增量去重,提高爬虫爬取性能。

Berkeley DB简介
Berkeley DB是一个嵌入式数据库,为应用程序提供可伸缩的、高性能的、有事务保护功能的数据管理服务。

主要特点:
嵌入式:直接链接到应用程序中,与应用程序运行于同样的地址空间中,因此,无论是在网络上不同计算机之间还是在同一台计算机的不同进程之间,数据库操作并不要求进程间通讯。 Berkeley DB为

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值