Supponendo che tutto è installato correttamente, la familiarità con quella traccia errore, ogni volta che faccio uso CSVitemexporter, lo faccio con la creazione di un modulo aggiuntivo con loro progetto di essere il CSVitemexporter e poi basta semplicemente dichiarare il mio il deliminator così ...
yournameformodule.py
from scrapy.conf import settings
from scrapy.contrib.exporter import CsvItemExporter
class MyProjectCsvItemExporter(CsvItemExporter):
def __init__(self, *args, **kwargs):
delimiter = settings.get('CSV_DELIMITER', ',')
kwargs['delimiter'] = delimiter
fields_to_export = settings.get('FIELDS_TO_EXPORT', [])
if fields_to_export :
kwargs['fields_to_export'] = fields_to_export
super(MyProjectCsvItemExporter, self).__init__(*args, **kwargs)
quindi fare in modo che nelle impostazioni di elencare le voci (anche nella tua items.py)
settings.py
FEED_EXPORTERS = {
'csv': 'PROJECTNAME.YOURNAMEFORMODULE.MyProjectCsvItemExporter',
}
FIELDS_TO_EXPORT = [
'etc',
'etc2',]
L'unica cosa di cui sono certo il processo funziona lo stesso o un ragno come se ci fosse un ragno strisciare, anche se non riesco a vedere perché no, non ho ancora testato diverso usando un crawler per ora. Se sei ancora bloccato su queste chiavi della vita con i tuoi file di progetto per aiutarti meglio.
da quello che posso vedere non c'è modo di impostare il delimitatore esportatore CSV utilizzando le impostazioni, è più semplice creare la propria classe, impostare CsvItemExporter come classe base e in __init__ chiamare super parametri aggiuntivi wit – Jerzyk