我正在使用scrapy 0.20和python 2.7
我想避免重复的项目。
我制作了这个自定义类
def request_seen(self, request):
fp = self.__getid(request.url)
print 'we are heeeeeeeeeeeeeeeeeeeeeeeeere {0}'.format(fp)
if (fp is not None) and (fp in self.fingerprints):
print 'sssssssssssssssssssssssss'
return True
elif fp is not None:
print 'why are you here'
self.fingerprints.add(fp)
if self.file:
self.file.write(fp + os.linesep)
return False
else:
return False
请看一下。
当我运行我的蜘蛛时,我可以看到文本why are you here
,其中elif
是真的。在elif
里面,我回归真实。因此,蜘蛛应该知道这个网址已被访问过,并且不得再访问它。
但就我而言,虽然request_seen
返回true,但蜘蛛会将这些项目归为一类。
我在我的设置中有这个
DUPEFILTER_CLASS = 'TestSpider.CustomFilter.CustomFilter'
这是一个小型的打印屏幕