2017-04-06 1 views

Antwort

1

Sehen Sie ein Beispiel von official documentation:

from scrapy.spiders import CSVFeedSpider 
from myproject.items import TestItem 

class MySpider(CSVFeedSpider): 
    name = 'example.com' 
    allowed_domains = ['example.com'] 
    start_urls = ['http://www.example.com/feed.csv'] 
    delimiter = ';' 
    quotechar = "'" 
    headers = ['id', 'name', 'description'] 

    def parse_row(self, response, row): 
     self.logger.info('Hi, this is a row!: %r', row) 

     item = TestItem() 
     item['id'] = row['id'] 
     item['name'] = row['name'] 
     item['description'] = row['description'] 
     return item 

Um es mit einer lokalen Datei zu verwenden stattdessen nur Datei-URL verwenden: file:///home/user/some.csv

+0

Was für jetzt ich versuche die SitemapSpider eine Datenbank mit ist bevöl Die Links zu den CSV-Dateien und dem CSVFeedSpider lesen aus dieser Datenbank. – tylerjw

+0

@tylerjw warum nicht einfach alles in einer Datenbank speichern und den csv-Mittelsmann schneiden? Für scrapy-document-getriebene Datenbanken wie Mongo oder Couchdb funktionieren hervorragend oder wenn Sie nicht viele Daten haben, ist das eine super einfache Lösung! – Granitosaurus

+0

Ich verwende eine Mongo-Datenbank zum Speichern der Ergebnisse. Das Problem ist, dass in dieser CSV-Datei spezifischere Daten vorhanden sind, als in der Listenansicht auf der Seite angezeigt werden. Ich habe schließlich die Argumente für die URI für die CSV-API herausgefunden, so dass ich nicht einmal die Seite mit dem Link darauf laden muss. – tylerjw

Verwandte Themen