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 wirdHinweisIch habe diese Protokolldaten häufig in meiner Protokolldatei und habe Ihnen nur ein Beispiel gezeigt, um mein Problem zu erläutern
Anmerkung 2Ofc benutze ich nichtMySpider
, file1.xml
undfile2.xml
Namen, aber ich konnte Ihnen den richtigen Namen aus Datenschutzgründen nicht anzeigen.