Frage

Ich studiere die Scrapy Tutorial. Um den Prozess zu testen, habe ich ein neues Projekt mit diesen Dateien:

Siehe meinen Beitrag in Scrapy Gruppe für Links zu Skripten, kann ich nicht Post mehr als 1 Link hier.

Die Spinne läuft gut und kratzt den Text zwischen Titel-Tags und legt es in FirmItem

[whitecase.com] INFO: Passed FirmItem(title=[u'White & Case LLP - Lawyers - Rachel B. Wagner ']) 

Aber ich bin in dem Pipeline-Prozess stecken. Ich mag diese FirmItem in eine CSV-Datei hinzufügen, so dass ich es in die Datenbank hinzugefügt werden kann.

Ich bin neu in Python und ich lerne, wie ich mitgehen. Ich würde mich freuen, wenn mir jemand eine Ahnung hat, wie man die pipelines.py Arbeit zu machen, so dass die geschabt Daten in items.csv gesetzt wird.

Danke.

War es hilfreich?

Lösung

Ich denke, sie Ihre Frage in der Scrapy Tutorial .

Es vorschlagen, wie andere hier haben die CSV-Modul. Legen Sie die folgenden in Ihrer pipelines.py Datei.

import csv

class CsvWriterPipeline(object):

    def __init__(self):
        self.csvwriter = csv.writer(open('items.csv', 'wb'))

    def process_item(self, domain, item):
        self.csvwriter.writerow([item['title'][0], item['link'][0], item['desc'][0]])
        return item
  

Vergessen Sie nicht, um die Pipeline zu aktivieren, indem sie auf die ITEM_PIPELINES Einstellung in Ihrer settings.py hinzufügen, wie folgt aus:

ITEM_PIPELINES = ['dmoz.pipelines.CsvWriterPipeline']

Stellen Sie die Besonderheiten Ihres Projekts gerecht zu werden.

Andere Tipps

Mit dem Einbau- CSV-Feed Export (erhältlich in v0.10) zusammen mit dem CsvItemExporter .

Python hat eine Modul zum Lesen / Schreiben von CSV-Dateien , das ist sicherer als die Ausgabe Schreiben selbst (und immer alles unter Angabe / Flucht rechts ...)

import csv
csvfile = csv.writer(open('items.csv', 'w'))
csvfile.writerow([ firmitem.title, firmitem.url ])
csvfile.close()

Öffnen Sie die Datei und Schreiben zu.

f = open('my.cvs','w')
f.write('h1\th2\th3\n')
f.write(my_class.v1+'\t'+my_class.v2+'\t'+my_class.v3+'\n')
f.close()

oder Ausgang Ihre Ergebnisse auf stdout und dann Umleitung stdout Datei ./my_script.py >> res.txt

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top