【scrapy_redis】调试后爬取了部分数据,然后重新调试时,直接被去重机制过滤掉无法重头开始爬取
这2天遇到一个问题,之前调试的时候爬取了一些数据,结果第二天重新调试的时候发现爬虫很快结束,而且还没有报错。后来从日志里看到这个:
no more duplicates will be shown (see DUPEFILTER_DEBUG to show all duplicate
这句就是在get第一个链接后出现的日志,大概意思就是“不会重复出现”,所以我猜想可能是因为redis自带了去重的机制,所以已经爬取的内容不会重新去爬
后来我去百度解决方案。首先,有人说在setting里把SCHEDULER_PERSIST改为false,经验证是没有用的。
然后无意间看到redis目录下有个文件叫dump.rdb,百度了一下,网友的回答:
”简而言之,dump.rdb是由Redis服务器自动生成的
默认情况下 每隔一段时间redis服务器程序会自动对数据库做一次遍历,把内存快照写在一个叫做“dump.rdb”的文件里,这个持久化机制叫做SNAPSHOT。有了SNAPSHOT后,如果服务器宕机,重新启动redis服务器程序时redis会自动加载dump.rdb,将数据库状态恢复到上一次做SNAPSHOT时的状态。
至于多久做一次SNAPSHOT,SNAPSHOT文件的路径和文件名,你可以在redis的conf文件里指定。
除了SNAPSHOT,redis还支持AOF持久化。”
看了和这个回答之后,我在想如果删掉了这个文件,会不会就可以了呢?
事实证明,结果还是一样的。今天再继续查,发现有网友跟我遇到同样问题:
scrapy-redis的dupefilter的数据如何重置或者清空呢:
使用scrapy-redis蜘蛛爬过以后,再爬就无法爬了。如果给蜘蛛改个名字,就可以重新爬取,如果改回原来的名字就又开始了去重机制,虽然需要dupefilter,但是如果调试中生成一些数据,想重新爬取的话,如何解决这个问题呢。
如何删除dupefilter之前记录的爬过的url数据呢。
在这里下面找到这样一个答案:
SCHEDULER_FLUSH_ON_START = True
在设置里面可以添加这一句就可以,自动清理redis里面的key
做了这个设置以后,再次运行,现在就没有get一个连接就结束了(虽然还有其他报错= = 不过这个去重的问题应该是没有了)
这里稍稍补充一下,如果你的项目没有使用redis的去重机制,那仍然会反复爬取数据,不需要添加SCHEDULER_FLUSH_ON_START 参数
【scrapy_redis】调试后爬取了部分数据,然后重新调试时,直接被去重机制过滤掉无法重头开始爬取的更多相关文章
- webMagic+RabbitMQ+ES爬取京东建材数据
本次爬虫所要爬取的数据为京东建材数据,在爬取京东的过程中,发现京东并没有做反爬虫动作,所以爬取的过程还是比较顺利的. 为什么要用WebMagic: WebMagic作为一款轻量级的Java爬虫框架,可 ...
- 用scrapy爬取京东的数据
本文目的是使用scrapy爬取京东上所有的手机数据,并将数据保存到MongoDB中. 一.项目介绍 主要目标 1.使用scrapy爬取京东上所有的手机数据 2.将爬取的数据存储到MongoDB 环境 ...
- Python:将爬取的网页数据写入Excel文件中
Python:将爬取的网页数据写入Excel文件中 通过网络爬虫爬取信息后,我们一般是将内容存入txt文件或者数据库中,也可以写入Excel文件中,这里介绍关于使用Excel文件保存爬取到的网页数据的 ...
- 利用selenium 爬取豆瓣 武林外传数据并且完成 数据可视化 情绪分析
全文的步骤可以大概分为几步: 一:数据获取,利用selenium+多进程(linux上selenium 多进程可能会有问题)+kafka写数据(linux首选必选耦合)windows直接采用的是写my ...
- 【python数据挖掘】爬取豆瓣影评数据
概述: 爬取豆瓣影评数据步骤: 1.获取网页请求 2.解析获取的网页 3.提速数据 4.保存文件 源代码: # 1.导入需要的库 import urllib.request from bs4 impo ...
- 吴裕雄--天生自然python数据清洗与数据可视化:MYSQL、MongoDB数据库连接与查询、爬取天猫连衣裙数据保存到MongoDB
本博文使用的数据库是MySQL和MongoDB数据库.安装MySQL可以参照我的这篇博文:https://www.cnblogs.com/tszr/p/12112777.html 其中操作Mysql使 ...
- C# 爬取猫眼电影数据
最近做了一个新项目,因为项目需要大量电影数据,猫眼电影又恰好有足够的数据,就上猫眼爬数据了. 1.先分析一下网页地址,发现电影都是被排好序号了,这就很简单了. 2.在分析页面,这次主要爬取黄色框中的内 ...
- Python爬取招聘网站数据,给学习、求职一点参考
1.项目背景 随着科技的飞速发展,数据呈现爆发式的增长,任何人都摆脱不了与数据打交道,社会对于“数据”方面的人才需求也在不断增大.因此了解当下企业究竟需要招聘什么样的人才?需要什么样的技能?不管是对于 ...
- Java实现爬取京东手机数据
Java实现爬取京东手机数据 最近看了某马的Java爬虫视频,看完后自己上手操作了下,基本达到了爬数据的要求,HTML页面源码也刚好复习了下,之前发布两篇关于简单爬虫的文章,也刚好用得上.项目没什么太 ...
随机推荐
- 26.pymysql、pymongo、redis-py安装
pymysql.pymongo.redis-py安装 1.将数据存入mysql借助pymysql2.和MongoDB进行交互,借助pymongo pip3 install pymysql(pip 安装 ...
- 我练就数据分析技能从HR转型为产品经理
本文转自知乎 作者:空白白白白 ----------------------------------------------------- 空白白白白写在前面:当我在奥兰多的时候,一位漂亮的女学员(看 ...
- python中的pop
pop()将列表指定位置的元素移除,同时可以将移除的元素赋值给某个变量,不填写位置参数则默认删除最后一位 pop()根据键将字典中指定的键值对删除,同时可以将删除的值赋值给变量 举个例子: 1 a = ...
- 关于存session,cookie还是数据库或者memcache的优劣,部分网上抄录
从效率考虑:cookie > memcache > 数据库cookie对服务器端负载没影响,如果加密.解密会多消耗一点点cpu.带宽倒是会消耗得多一点,同域名下的所有http reques ...
- ubuntu简单安装apache
环境: ubuntu 目标: 1.安装web服务器apache 2.打开浏览器,访问自己的web服务器,看到 Hello,World! 开始动手了! 安装sudo apt-get install ap ...
- [bcc32 Error] ws2def.h(231): E2238 Multiple declaration for 'sockaddr'
[bcc32 Error] ws2def.h(231): E2238 Multiple declaration for 'sockaddr' Full parser context ksrGe ...
- as2 attachMovie库影片无法获取其影片里面的对象或方法
1.attachMovie的容器有两个,导致出错.举例子.创建了一个空的gameMc,然后容器又new个同个名字的,在这里不知道为什么不会替换,而是叠加 containerGame.createEmp ...
- svn从本地更新了资源库的资源后删除了某个文件夹无法恢复(已解决)
事件描述: 删除了本地svn的某个文件夹中的某个文件后,想要恢复,但是无法恢复,解决方法如下 步骤: 1:在删除的文件夹下右键,选择TortoiseSVN——>Revert... 2:选择需要恢 ...
- vue 踩坑-事件修饰符
(1).stop // 阻止事件继续传播 即阻止冒泡过程 (2).prevent //阻止默认事件发生 即event.preventdefault(): 实例: 阻止了a标签的默认刷新 (3).cap ...
- js函数的创建
1.js 函数的创建有几种方式: 1.1 直接声明 1.2 创建匿名函数,然后赋值 1.3 声明函数,然后赋值给变量 1.4 使用1.3 得到的变量再赋值给变量 1.5 使用函数对象创建函数 < ...