2010-08-06 15 views
5

Seit einem Monat verwende ich Scrapy für ein Web-Crawling-Projekt, das ich begonnen habe.Beste Web-Grafik-Crawler für Geschwindigkeit?

Bei diesem Projekt wird der gesamte Dokumentinhalt aller Webseiten in einem einzigen Domänennamen abgerufen, der über die Homepage erreichbar ist. Mit Scrapy zu schreiben war ziemlich einfach, aber es läuft einfach zu langsam. In 2-3 Tagen kann ich nur 100.000 Seiten herunterziehen.

Ich habe festgestellt, dass meine ursprüngliche Vorstellung, dass Scrapy nicht für diese Art von Crawl gedacht ist, sich enthüllt.

Ich habe begonnen, meine Aufmerksamkeit auf Nutch und Methabot in der Hoffnung auf bessere Leistung zu konzentrieren. Die einzigen Daten, die ich während des Crawlings speichern muss, sind der gesamte Inhalt der Webseite und vorzugsweise alle Links auf der Seite (aber auch das kann in der Nachbearbeitung getan werden).

Ich bin auf der Suche nach einem Crawler, der schnell ist und viele parallele Anfragen anwendet.

Antwort

5

Das ist mein Fehler Server nicht Scrapy. Der Server ist möglicherweise nicht so schnell, wie Sie möchten, oder er erkennt (oder Webmaster) das Crawling und begrenzt die Geschwindigkeit für diese Verbindung/diesen Cookie. Verwenden Sie Proxy? Dies kann auch das Crawlen verlangsamen. Dies kann Scrapy-Weisheit sein. Wenn Sie zu intensiv crawlen, können Sie diesen Server sperren. Für meine C++ handwritten crawler setze ich künstlich 1 Anfrage pro Sekunde. Aber diese Geschwindigkeit reicht für 1 Thread (1 Req * 60 Sek. * 60 Minuten * 24 Stunden = 86400 Req/Tag). Wenn Sie interessiert sind, können Sie eine E-Mail an whalebot.helmsman {AT} gmail.com schreiben.

+0

Es kann auch Ihr ISP sein. –

2

Mit Scrapy können Sie die Anzahl gleichzeitiger Anfragen und die Verzögerung zwischen den Anfragen in its settings ermitteln.

0

Wissen Sie, wo der Engpass ist ?. Wie walebot.helmsman darauf hingewiesen hat, ist das Limit möglicherweise nicht auf Scrapy selbst, sondern auf dem Server, auf dem Sie gerade krabbeln.

Sie sollten zunächst herausfinden, ob der Engpass das Netzwerk oder die CPU ist.

Verwandte Themen