在
contrib/feedexport.py,
class FeedExporter(object): ... def open_spider(self, spider): file = TemporaryFile(prefix='feed-') exp = self._get_exporter(file) # <-- this is where the exporter is instantiated exp.start_exporting() self.slots[spider] = SpiderSlot(file, exp) def _get_exporter(self, *a, **kw): return self.exporters[self.format](*a, **kw) # <-- not passed in :(
您将需要自己制作,这是一个示例:
from scrapy.conf import settingsfrom scrapy.contrib.exporter import CsvItemExporterclass CsvOptionRespectingItemExporter(CsvItemExporter): def __init__(self, *args, **kwargs): delimiter = settings.get('CSV_DELIMITER', ',') kwargs['delimiter'] = delimiter super(CsvOptionRespectingItemExporter, self).__init__(*args, **kwargs)在
settings.py搜寻器目录的文件中,添加以下内容:
FEED_EXPORTERS = { 'csv': 'importable.path.to.CsvOptionRespectingItemExporter',}现在,您可以按以下方式执行蜘蛛程序:
scrapy crawl spidername --set FEED_URI=output.csv --set FEED_FORMAT=csv --set CSV_DELIMITER=';'
HTH。



