0
以下のコードが正しいかどうか調べることができますか?クラスはしかし、複数のスパイダーのために複数同時に開いているファイルを追跡しますおそらく不正なスパイダー・ドックのスパイダー/エクスポーターのコード例
- :
- に依存輸出国(コードが http://readthedocs.org/docs/scrapy/en/0.14/topics/exporters.html
で発見され 私はので、それは間違っていると信じてファイル)は、新しいスパイダーが開かれるたびに上書きされます。
ありがとうございます。
class XmlExportPipeline(object):
def __init__(self):
dispatcher.connect(self.spider_opened, signals.spider_opened)
dispatcher.connect(self.spider_closed, signals.spider_closed)
self.files = {}
def spider_opened(self, spider):
file = open('%s_products.xml' % spider.name, 'w+b')
self.files[spider] = file
self.exporter = XmlItemExporter(file)
self.exporter.start_exporting()
def spider_closed(self, spider):
self.exporter.finish_exporting()
file = self.files.pop(spider)
file.close()
def process_item(self, item, spider):
self.exporter.export_item(item)
return item
おかげで、:そして、複数のスパイダーのための明白な修正は
spider
キーでexporters
辞書を作ることです – mskel