2016-12-20 2 views
0

Wie kann ich in scrapy shell Ausgabeergebnisse in eine Datei, vorzugsweise CSV?scrapy shell: Ausgabeergebnis in Datei

Ich habe eine Liste von interessanten Elementen in meiner bpython Shell, ich kann item von ihnen machen. Aber wie man es in eine Datei umleitet?

Antwort

3

Sobald Sie in der Shell sind, können Sie mit Python machen, was Sie wollen. Dazu gehört das Lesen/Schreiben von Daten aus/in eine Datei, zum Beispiel unter Verwendung der Module json oder csv.

Aber, da wir über Scrapy und csv sprechen, lassen Sie uns CsvItemExporter Scrapy verwenden den Job zu erledigen:

from scrapy.exporters import CsvItemExporter 
items = [{'one': 'data', 'two': 'more data'}, {'one': 'info', 'two': 'more info'}] 
with open('data.csv', 'w') as f: 
    exporter = CsvItemExporter(file=f, fields_to_export=['one', 'two']) 
    exporter.start_exporting() 
    for i in items: 
     exporter.export_item(i) 
    exporter.finish_exporting() 

dass eine gestrippt ist abgespeckte Version von dem, was Scrapy tut, wenn Sie die -o Option die crawl hinzufügen Befehl zum Speichern der Ausgabe in einer Datei.

0

Beantwortet das folgende Ihre Frage?

https://doc.scrapy.org/en/latest/topics/feed-exports.html

Einer der am häufigsten benötigten Funktionen bei der Implementierung Schaber ist in der Lage, die geschabt Daten zu speichern, richtig und ganz oft, das bedeutet eine „Export-Datei“ mit den abgekratzten Daten zu erzeugen (gemeinhin als „ Feed exportieren "), um von anderen Systemen konsumiert zu werden. Scrapy bietet diese Funktionalität sofort mit den Feed-Exports, mit denen Sie einen Feed mit den Scraped-Elementen unter Verwendung mehrerer Serialisierungsformate und Speicher-Backends generieren können.

https://doc.scrapy.org/en/latest/topics/feed-exports.html#topics-feed-format-csv

CSV

FEED_FORMAT: csv

Exporteur verwendet: CsvItemExporter

Spalten zu spezifizieren und FEED_EXPORT_FIELDS Verwendung ihrer Reihenfolge zu exportieren. Andere Feed-Exporteure können diese Option ebenfalls verwenden, aber sie ist wichtig für CSV, da CSV im Gegensatz zu vielen anderen Exportformaten einen festen Header verwendet.

+1

Ich habe die Seite gelesen, aber wie kann ich Daten damit ausgeben? –