Ich habe ein Scrapy-Projekt, das 1 Millionen Produkt-IDs aus der Datenbank liest und dann beginnt, Produktdetails basierend auf ID von einer Website zu scrapen.Führen Sie mehrere Prozesse eines Scrapy Spider
Mein Spider ist voll funktionsfähig.
Ich möchte 10 Instanzen von Spider mit jeweils einer gleichen Anzahl von Produkt-IDs ausgeführt werden.
Ich kann es tun wie,
SELECT COUNT(*) FROM product_ids
und dann teilen sie durch 10 und dann tun
SELECT * FROM product_ids LIMIT 0, N
und so weiter
Ich habe eine Idee, die ich es im Terminal tun können, indem LIMIT
in scrapy Befehl wie scrapy crawl my_spider scrape=1000
und so weiter.
Aber ich möchte es in Spider machen, also lasse ich meine Spinne nur einmal laufen und dann laufen 10 weitere Prozesse derselben Spinne innerhalb der Spinne.
Meiner Meinung nach sollte diese Logik außerhalb der Scrapy Spinne bleiben. Gewöhnliche Art, dies zu tun, besteht darin, einfach ein Bash-Skript zu schreiben, um eine Datei, die URLs enthält, zu "trennen" und dann nacheinander durch diese Dateien zu iterieren und für jeden Start einen Scrapy-Spider mit einem Argument, das diese Datei ist: scrapy crawl -a file = xab' – Granitosaurus
Ich bin gut in PHP, also kann ich ein PHP-Skript dafür schreiben ... :) gute suggstion – Umair