scrapy spider sendet das Signal spider_close, bevor es geschlossen wird

Ich habe eine Spinne, die eine Datei als Parameter nimmt, diese Datei enthält die xpaths.

Die Spinne parst die Datei und holt die xpaths und fängt an zu crawlen.

Alles funktioniert gut

Nun, ich möchte diese Spinne viele Male laufen lassen. Also habe ich Folgendes getan:

script.py

def setup_crawler(file):
    spider = MySpider(attributesXMLFilePath=file)
    settings = get_project_settings()
    crawler = Crawler(settings)
    crawler.configure()
    crawler.crawl(spider)
    crawler.start()


for oneFile in myFiles:
    setup_crawler(oneFile')
log.start()
reactor.run()

und inMySpider Ich mache das:

def __init__(self, attributesXMLFilePath):
    dispatcher.connect(self.spider_closed, signals.spider_closed)
def spider_closed(self, spider):
        log.msg('The number of pages in the spider {1} are {0}'.format(self.numbers, self.attributesXMLFilePath))
        log.msg('The number of details pages in the spider {1} are {0}'.format(self.numbers2, self.attributesXMLFilePath))
        log.msg('The spider {0} with xml {2} finished working on {1}'.format(self.name, datetime.now(), self.attributesXMLFilePath), level=log.INFO)

Aber in der Protokolldatei sehe ich Folgendes:

2014-06-08 18:18:03+0300 [scrapy] INFO: The number of pages in the spider file1.xml are 1
2014-06-08 18:18:03+0300 [scrapy] INFO: The number of pages in the spider file1.xml are 1
2014-06-08 18:18:03+0300 [scrapy] INFO: The number of details pages in the spider file1.xml are 0
2014-06-08 18:18:03+0300 [scrapy] INFO: The number of details pages in the spider file1.xml are 0
2014-06-08 18:18:03+0300 [scrapy] INFO: The spider MySpider with xml file1.xml finished working on 2014-06-08 18:18:03.746000
2014-06-08 18:18:03+0300 [scrapy] INFO: The spider MySpider with xml file1.xml finished working on 2014-06-08 18:18:03.746000
2014-06-08 18:18:03+0300 [scrapy] INFO: The number of pages in the spider file2.xml are 1
2014-06-08 18:18:03+0300 [scrapy] INFO: The number of pages in the spider file2.xml are 1
2014-06-08 18:18:03+0300 [scrapy] INFO: The number of details pages in the spider file2.xml are 0
2014-06-08 18:18:03+0300 [scrapy] INFO: The number of details pages in the spider file2.xml are 0
2014-06-08 18:18:03+0300 [scrapy] INFO: The spider MySpider with xml file2.xml finished working on 2014-06-08 18:18:03.748000
2014-06-08 18:18:03+0300 [scrapy] INFO: The spider MySpider with xml file2.xml finished working on 2014-06-08 18:18:03.748000

Wie du siehst:

Jede Zeile wird zweimal dupliziert.Warum?Es gibt viele Male, in denen die Funktion spider_close ausgeführt wirdHinweis

Ich habe diese Protokolldaten häufig in meiner Protokolldatei und habe Ihnen nur ein Beispiel gezeigt, um mein Problem zu erläutern

Anmerkung 2

Ofc benutze ich nichtMySpider, file1.xml undfile2.xml Namen, aber ich konnte Ihnen den richtigen Namen aus Datenschutzgründen nicht anzeigen.

Antworten auf die Frage(0)

Ihre Antwort auf die Frage