@Sjaak Trekhaak有一个“技巧”,可以在管道中设置一个标志,然后在解析器方法中调用CloseSpider,从而有可能通过如何在管道满足条件时立即停止所有蜘蛛和引擎 来停止蜘蛛。但是,我在管道中有以下代码(其中pdate和lastseen是明确定义的日期时间):
class StopSpiderPipeline(object):
def process_item(self, item, spider):
if pdate < lastseen:
spider.close_down = True
在爬虫中。
def parse_item(self, response):
if self.close_down:
raise CloseSpider(reason='Already scraped')
我遇到了错误exceptions.AttributeError: 'SyncSpider'对象没有属性'close_down'
,我错在哪里了?这个问题实际上是由@anicake提出的,但没有得到回答。
close_down
属性:我在parse_item
方法中这样做了,它需要在类中。 - eN_Joy