关于去重的两点疑惑

来源:10-9 集成bloomfilter到scrapy-redis中

RiverMa

2017-07-11

1、如果爬虫不重启,scrapy自带的去重和redis都可以很方便的去重。但如果爬虫爬完关闭后,重新启动,原来的url信息都没有了,还会从头再来一遍。怎么样发现新更新的链接?
2、有些页面url没有发生变化,但内容变了,比如论坛里回复的最后一页,上次爬取后又有新的回复,如果按url去重是不是会漏掉数据?

写回答

1回答

bobby

2017-07-12

  1. scrapy的暂停和重启我在scrapy进阶中讲过, 如果按照那种方式启动和停止都不用担心中间的数据丢失,因为这些数据都会保存到文件中, 下一次重启会从这些文件加载, scrapy-redis的所有这些中间状态都是保存在redis中的更不会丢失, 这些我在课程中都详细的讲过的

  2. 对某一个url在yield request的时候, 设置一个参数 dont_filter=True后及时这个url已经存在在去重队列中也不会被过滤掉的, 你是不是课程中跳着看的, 这些内容我都讲解过的

0
2
bobby
回复
RiverMa
你说的是将已经爬取的url保存下来吧, 你可以参照scrapy暂定的那个逻辑源码自己修改一下, 如果你用scrapy-redis的话就不会存在这个问题, 因为所有信息一致都是保存在内存中的, 这些数据是不会丢失的
2017-07-13
共2条回复

Scrapy打造搜索引擎 畅销4年的Python分布式爬虫课

带你彻底掌握Scrapy,用Django+Elasticsearch搭建搜索引擎

5763 学习 · 6266 问题

查看课程