TurboWay / spiderman

基于 scrapy-redis 的通用分布式爬虫框架
MIT License
584 stars 128 forks source link

添加相同网址的任务,第二次添加的任务没有执行 #13

Closed xkungfu closed 3 years ago

xkungfu commented 3 years ago

EXTENSIONS设置为空,通过ScheduledRequest添加任务,两次任务的网址如果一样,第二次添加的网址不工作。

跟踪到第二次添加任务后,执行到scrapy engine.py schedule函数,执行了self.signals.send_catch_log。 然后后面就不知道代码运行到哪里去了。

推测某个步骤有过滤功能,把第二次添加的任务过滤掉了。

请问过滤的步骤在哪个文件哪个函数?

蜘蛛配置如下: 'EXTENSIONS': {},

    def get_callback(self, callback):
        # url去重设置:True 不去重 False 去重
        callback_dt = {
            'list': (self.list_parse, True),
            'detail': (self.detail_parse, True),
        }
        return callback_dt.get(callback)
xkungfu commented 3 years ago

在ScheduledRequest下添加dont_filter不起作用。

TurboWay commented 3 years ago

我的环境下测试正常。请确认下是否有把 ScheduledRequest 成功 push 到 redis

xkungfu commented 3 years ago

好的,我看看

xkungfu commented 3 years ago

找到原因了,dont_filter在SP>>spiders>>SPRedisSpider.py>>SPRedisSpider>>make_request_from_data这个函数中控制读取和设置。 谢谢!