2010-11-03 39 views
8

J'ai une araignée que j'ai écrite en utilisant le framework Scrapy. J'ai de la difficulté à faire fonctionner des pipelines. J'ai le code suivant dans mon pipelines.py:Impossible de faire fonctionner le pipeline Scrapy

class FilePipeline(object): 

    def __init__(self): 
     self.file = open('items.txt', 'wb') 

    def process_item(self, item, spider): 
     line = item['title'] + '\n' 
     self.file.write(line) 
     return item 

et ma sous-classe CrawlSpider a cette ligne pour activer le pipeline pour cette classe.

ITEM_PIPELINES = [ 
     'event.pipelines.FilePipeline' 
    ] 

Cependant quand je lance à l'aide

scrapy crawl my_spider 

Je reçois une ligne qui dit

2010-11-03 20:24:06+0000 [scrapy] DEBUG: Enabled item pipelines: 

sans pipelines (je suppose que c'est là que l'exploitation forestière devrait leur sortie).

J'ai essayé de parcourir la documentation mais il ne semble pas y avoir d'exemples complets d'un projet entier pour voir si j'ai manqué quelque chose.

Des suggestions sur quoi essayer ensuite? ou où chercher de la documentation supplémentaire?

Répondre

8

Got it! La ligne doit aller dans le module des paramètres pour le projet. Maintenant ça marche!

+0

Avez-vous ce code de projet hébergé dans github? – Medeiros

+0

Non, mon client peut l'avoir mis en place quelque part, mais pas ma place pour l'ouvrir, j'ai peur. –

+0

je devais utiliser ITEM_PIPELINES comme dict au lieu d'une liste dans le fichier de paramètres –

0

Je suis prêt à parier que c'est une différence de capitalisation dans le pipeline mot quelque part:

Pipeline contre PipeLine

Je remarque 'event.pipelines.FilePipeline' utilise l'ancien, alors que votre code utilise ce dernier: qui faites votre les noms de fichiers utilisent-ils?

(je suis tombé victime de cette erreur d'orthographe plusieurs fois!)

+0

Merci d'avoir repéré cela (ne peut pas croire que je l'ai manqué!), Mais cela ne fonctionne toujours pas malheureusement –

+0

C'est toujours mon pari sur ce qui ne va pas, continuez à vérifier! : P (sinon, je suis à court d'idées ...) – James

+0

Je jetterai un autre regard. À votre santé! –