Ich habe eine Sitemap Spider, die Links zu CSV-Dateien sammeln kann. Ich würde gerne eine CSV-Spinne verwenden, um über diese Links zu kriechen. Wie würde ich den Output einer Spinne in eine andere spinnen?Wie füge ich Links zu CSV-Dateien, die von SitemapSpider gesammelt wurden, in eine zweite Spinne ein, die CSVFeedSpider ist
1
A
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
Verwandte Themen
- 1. Wie füge ich Werte ein, die von der Datenbank einer App zu einer anderen abgerufen wurden?
- 2. Wie füge ich Kreise von unten in die Zeilen ein?
- 3. Wie füge ich Währungssymbole in pdf ein, die von meiner Anwendung generiert wurden?
- 4. Wie füge ich Videos zusammen, die mit avcapturesession aufgenommen wurden?
- 5. Wie füge ich eine Zeichenfolge ein, die ein "&" enthält
- 6. Wie füge ich Daten von mysql in die Combobox ein?
- 7. Gekratzte URLs von einer Spinne zur nächsten weitergeben
- 8. Wie wird die Bearbeitungszeit in C gesammelt?
- 9. Wie füge ich einen oder mehrere Links in Kommata getrennt in die Datenbank ein?
- 10. Git-Workflow: Wie füge ich Commits ein, die nur für einen neuen Zweig erstellt wurden
- 11. Eclipse - Wie füge ich eine Datei hinzu, die von rechts nach links Zeichenfolgen hat
- 12. Wie füge ich ein Produkt in eine Liste ein, ohne die gesamte Datenbank zu laden?
- 13. Thread-sicheres Timing zum Ausrichten von Daten, die in mehreren Threads gesammelt wurden - funktioniert QElapsedTimer?
- 14. Wie füge ich eine Zeichenfolge in eine andere Zeichenfolge ein?
- 15. Wie man eine Spinne in Scrapy "pausiert"?
- 16. Lade ein neues Level nachdem alle Münzen gesammelt wurden
- 17. Wie füge ich Bilder in die Auswahlliste ein
- 18. Wie füge ich reCAPTCHA-Validierungsfehler in die @ html.ValidationSummary-Liste ein
- 19. Wie füge ich etwas in die Datenbank ein?
- 20. Wie füge ich einen Seitenindikator in die Navigationsleiste ein?
- 21. Wie füge ich einen Nullwert in die Datenbank ein?
- 22. Wie füge ich Null in die Datenbank ein?
- 23. Symfony2 & PdoSessionStorage: Wie füge ich Felder in die Datenbanksitzungstabelle ein?
- 24. Wie füge ich ein Datenformular in die Tabelle ein, wenn ich eine Taste drücke?
- 25. Wie füge ich Sonderzeichen in die Datenbank ein?
- 26. Wie füge ich Werte in die Datenbank ein?
- 27. Wie füge ich einen neuen Artikel in die Sammlung ein?
- 28. Wie erfasst man untergeordnete Links, die mit jquery geklickt wurden?
- 29. Ich habe eine Liste von Links, die links ausgerichtet werden sollen. One ist nicht ausgerichtet
- 30. Wie füge ich Schemaänderungen, die an einer Produktionsdatenbank vorgenommen wurden, in meinen von der Migration verwalteten Prozess ein?
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
@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
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