Besuchte URLs zwischen mehreren Spidern in Scrapy teilen?
-
21-12-2019 - |
Frage
Ich verwende scrapyd, um mehrere Spider als Jobs in derselben Domäne auszuführen.Ich ging davon aus, dass Scrapy über eine Hashtabelle der besuchten URLs verfügte, die es beim Crawlen mit anderen Spidern teilte und koordinierte.Wenn ich Instanzen derselben Spinne erstelle
curl http://localhost:6800/schedule.json -d project=projectname -d spider=spidername.
Vielmehr werden dieselben URLs gecrawlt und doppelte Daten werden gelöscht.Hat jemand schon einmal mit einem ähnlichen Problem zu tun gehabt?
Lösung
Mein Rat wäre, zu versuchen, die Site in mehrere zu unterteilen start_urls
.Dann, Sie können die verschiedenen Werte für übergeben start_urls
zu jeder Spinne.
Wenn Sie es besonders ausgefallen möchten (oder wenn sich die Seiten, die Sie crawlen möchten, regelmäßig ändern), können Sie einen Spider erstellen, der die Sitemap crawlt und die Links unterteilt n
Cunks, dann fängt es an n
andere Spinnen, die die Website tatsächlich crawlen ...