Python 刮痧蜘蛛停在第一个重复的项目

Python 刮痧蜘蛛停在第一个重复的项目,python,python-2.7,scrapy,Python,Python 2.7,Scrapy,我在Python2.7中使用Scrapy0.20 我想避免重复的项目 我不想在命令行中将JOBDIR用作参数。相反,我在脚本中这样做: settings.overrides['JOBDIR']= 'my customer jobdir' 然后在我的设置中执行此操作: DUPEFILTER_CLASS = 'MyProject.CustomFilter.CustomFilter' 在CustomFilter中,我起诉: def request_seen(self, request):

我在Python2.7中使用Scrapy0.20

我想避免重复的项目

我不想在命令行中将
JOBDIR
用作参数。相反,我在脚本中这样做:

settings.overrides['JOBDIR']= 'my customer jobdir'
然后在我的设置中执行此操作:

DUPEFILTER_CLASS = 'MyProject.CustomFilter.CustomFilter'
CustomFilter
中,我起诉:

def request_seen(self, request):
        fp = self.__getid(request.url)
        if (fp is not None) and (fp in self.fingerprints):
            return True
        elif fp is not None:
            self.fingerprints.add(fp)
            if self.file:
                self.file.write(fp + os.linesep)
        else:
            return False 
其中
\uu getid
是我使用的一个助手函数

我的问题 spider在找到第一个重复项时停止工作

我在CMD上发现了这条信息:

2014-03-03 10:43:44-0800 [GeneralSpider] DEBUG: Filtered duplicate request: <GET
 http://www.justproperty.com/apartments/old-town/1057362-most-affordable-2-b-r-i
n-old-town-for-sale.html> - no more duplicates will be shown (see DUPEFILTER_CLA
SS)
2014-03-03 10:43:44-0800[GeneralSpider]调试:已过滤的重复请求:-将不再显示重复项(请参见DUPEFILTER_CLA
(SS)

您可以在请求呼叫时使用参数
dont\u filter=True
。这将指示scrapy不要忽略重复的请求。它被记录在案

根据我的说法,您应该在spider中检查项目返回逻辑。我也面临同样的问题

在settings.py中启用DUPEFILTER\u DEBUG=True

现在,调度器中的复制过滤器过滤掉在单个spider运行中已经看到的所有URL(这意味着它将在后续运行中重置)

如果要继续爬网,请忽略重复的URL。 IgnoreVistedItems中间件在运行和避免访问以前看到的URL之间保持一种状态,但只针对最终的项目URL,以便可以重新爬网站点的其余部分(以便找到新项目)。
希望这对某人有所帮助。

在您的蜘蛛中,您是否正在生成上述URL-
http://www.justproperty.com/apartments/old-town/1057362-most-affordable-2-b-r-i n-old-town-for-sale.html
作为请求?@warunsl实际上,我有很多页面,每个页面都有很多项目。每个项目都有一个链接。我正在浏览这些项目的链接。因此,您提供的url是我在抓取母版页时提取的链接之一,然后我放弃了它。这对我一点帮助都没有。我不想丢弃重复的项目。但我有一个问题,那就是蜘蛛在找到第一个重复的项目后停止工作。