采纳答案成功!
向帮助你的同学说点啥吧!感谢那些助人为乐的人
1、如果爬虫不重启,scrapy自带的去重和redis都可以很方便的去重。但如果爬虫爬完关闭后,重新启动,原来的url信息都没有了,还会从头再来一遍。怎么样发现新更新的链接? 2、有些页面url没有发生变化,但内容变了,比如论坛里回复的最后一页,上次爬取后又有新的回复,如果按url去重是不是会漏掉数据?
scrapy的暂停和重启我在scrapy进阶中讲过, 如果按照那种方式启动和停止都不用担心中间的数据丢失,因为这些数据都会保存到文件中, 下一次重启会从这些文件加载, scrapy-redis的所有这些中间状态都是保存在redis中的更不会丢失, 这些我在课程中都详细的讲过的
对某一个url在yield request的时候, 设置一个参数 dont_filter=True后及时这个url已经存在在去重队列中也不会被过滤掉的, 你是不是课程中跳着看的, 这些内容我都讲解过的
不是跳着看的,暂停后重启的保存机制也理解。疑惑的是爬虫全爬完了,下次再爬的时候的情况。是不是是可以通过信号在爬虫关闭的时候把爬过的地方存下来,再打开的时候再加载进来?
你说的是将已经爬取的url保存下来吧, 你可以参照scrapy暂定的那个逻辑源码自己修改一下, 如果你用scrapy-redis的话就不会存在这个问题, 因为所有信息一致都是保存在内存中的, 这些数据是不会丢失的
登录后可查看更多问答,登录/注册
带你彻底掌握Scrapy,用Django+Elasticsearch搭建搜索引擎
4.8k 30
2.6k 18
1.2k 18
1.4k 15
2.9k 15