老师,请教scrapy redis 如何进行部分rule 增量抓取
来源:8-1 爬虫和反爬的对抗过程以及策略
慕莱坞6627921
2019-07-01
老师您好, 又来麻烦您了. 稍微学看下 跟了下源码头大看不懂.
start_url 是内容页的第一页, 有两个ruls规则 一个是抓取列表 一个是抓取详情页.
其中使用的老师讲的bloomfilter 进行过滤, 因为数据存在更新 就想列表不进入过滤, 但是单位时间不重复 头疼 啊啊
跟了下源码 scrapy_redis/scheduler enqueue_request方法中 有个request.dont_filter 开关,方法中参数的request 不知道怎么跟在哪里调用进来的, 晓得在parse 中的_parse_response 可以设置 dont_filter , 不过不晓得怎么进行下去
不过期间可能出现一个问题, 如果执行列表存在重复 就是循环了, 老师能不能本轮内单位有效, 还是说需要自己去处理下 过滤那块. 乱了, 不知道怎么下手了
写回答
2回答
-
bobby
2019-07-03
其实这种问题很好解决啊?
使用优先级队列
自己写一个脚本模拟enqueue_request的源码向队列中自己写入列表页的request,并把优先级设置高一点
这样就能在获取下一个url的时候最快获取到你的列表页的url了
00 -
慕莱坞6627921
提问者
2019-07-01
或者说 我想让 list rule 在下一次开始 时候再次进行抓取 0.0
00
相似问题