Je ne veux pas utiliser la commande -o pour exporter csv mais le créer à partir de mon scrapy script. Mon fichier csv s'exporte bien avec des éléments, mais je n'ai pas l'en-tête. Je voudrais avoir un en-tête correspondant aux touches de mes objets.Scrapy - Comment exporter un fichier cvs avec la clé de l'élément dans l'en-tête
- Comment réparer un en-tête avec des clés d'éléments?
J'ai vu dans plusieurs forums et tutoriels que l'en-tête doit être défini dans pipelines.py. J'ai essayé différentes solutions avec open_spiders mais cela n'a pas fonctionné.
Voici mon code pipelines.py:
class CsvWriterPipeline(object):
def __init__(self):
self.csvwriter = csv.writer(open(fichier1, 'wb'))
def open_spider(self, spider):
header_keys = item.fields.keys()
self.csvwriter.writerow(header_keys)
def process_item(self, item, spider):
self.csvwriter.writerow(
[item['nom_course'][0],
item['nom_evenement'][0],
item['distance'][0],
item['date'][0],
item['contact_1'][0],
item['contact_2'][0],
item['organisateur'][0],
item['site_internet_evenement'][0],
item['description'][0],
item['prix'][0],
item['nb_participant'][0],
item['URL_Even'][0],
item['pays'][0],
item['region'][0],
item['ville'][0],
item['tag'][0]])
return item
settings.py
BOT_NAME = 'AHOTU_V2'
SPIDER_MODULES = ['AHOTU_V2.spiders']
NEWSPIDER_MODULE = 'AHOTU_V2.spiders'
ITEM_PIPELINES = {
'AHOTU_V2.pipelines.CsvWriterPipeline': 800,
}
ROBOTSTXT_OBEY = True
Avez-vous activé le pipeline aussi dans 'settings.py'? Quel problème rencontrez-vous? –
Oui J'ai activé le pipeline dans settings.py (j'ai ajouté le code). Mon problème est que mon csv est exporté avec des éléments, mais je n'ai pas d'en-tête. Je voudrais créer un en-tête avec les clés des éléments. – VioGeo