老师,用scrapy-redis怎么实现深度优先啊
来源:3-5 深度优先和广度优先原理
慕粉1724417796
2017-05-04
因为用scrapy-redis的rediscrawlspider会先把符合的url全部加到队列中,在执行callback,所以调试很麻烦
有什么好的方法?
写回答
2回答
-
bobby
2017-05-05
调试会麻烦? 目前主要麻烦的地方是哪里?和普通的debug是一样的啊
00 -
慕粉1724417796
提问者
2017-05-24
比如说Rule有很多条,但是有callback是最后一条也是详细页,会等所有满足callback的那条Ruel的url全部加入redis队列中,才会执行callback那条Rule
这就会出现这种:redis中都几百万条request了,但没有一条执行callback
rules = (
Rule(LinkExtractor(allow=r'11467\.com/\w+?/$')),
Rule(LinkExtractor(allow=r'11467\.com/.*')),
Rule(LinkExtractor(allow=r'11467\.com/\w+?/co/\d+\.htm$'), callback='parse_detail', follow=True),
)有没有办法设定Rule的优先级,让特定Rule优先处理,比如最后一条有callback的rule
042019-10-17
相似问题