2013-06-19 6 views
13

Ich plane Webcrawling in einer Anwendung zu verwenden, an der ich gerade arbeite. Ich habe etwas über Nutch recherchiert und einige Vorversuche mit ihm gemacht. Aber dann bin ich auf Scrapy gestoßen. Aber als ich einige vorbereitende Recherchen durchführte und die Dokumentation über scrapy durchging, fand ich heraus, dass es nur strukturierte Daten erfassen kann (Sie müssen den div-Namen angeben, von dem Sie Daten erfassen wollen). Das Backend der Anwendung, die ich entwickle, basiert auf Python und ich verstehe Scrapy ist Python basiert und einige haben vorgeschlagen, dass Scrapy besser als Nutch ist.Scrapy Vs Nutch

Meine Anforderung besteht darin, die Daten von mehr als 1000 verschiedenen Webseiten zu erfassen und nach relevanten Schlüsselwörtern in diesen Informationen zu suchen. Gibt es eine Möglichkeit, dass scrapy dieselbe Anforderung erfüllen kann?

1) Wenn ja, können Sie auf ein Beispiel hinweisen, wie es gemacht werden kann?

2) Oder Nutch + Solr ist am besten geeignet für meine Anforderung

+3

Div-Name ist keine Voraussetzung für Scrapy, können Sie alles erfassen, was Sie wollen. –

Antwort

17

Scrapy würde perfekt in Ihrem Fall arbeiten.

Sie sind nicht geben divs Namen erforderlich - Sie alles, was Sie wollen, erhalten:

Scrapy mit seinen eigenen Mechanismus kommt Daten zum Extrahieren. Sie sind genannt XPath Selektoren (oder nur "Selektoren", kurz), weil sie bestimmte Teile des HTML-Dokuments "Select" bestimmte durch XPath Ausdrücke.

Außerdem können Sie BeautifulSoup und zum Extrahieren der Daten aus dem Seiteninhalt verwenden.

Außerdem basiert scrapy auf verdreht und ist vollständig async und schnell.

Es gibt viele Beispiele Scrapy Spinnen hier auf SO - nur durch die Tag Fragen. Wenn Sie eine spezifischere Frage haben - fragen Sie einfach.

Hoffe, dass hilft.

+0

Danke Alecxe .. Ich werde dann scrapy versuchen. Ich denke, ich muss eine bessere Nachforschungen anstellen. – Vidhu

+7

Es gab kürzlich einen Artikel über [Scrapy with Solr] (http://searchhub.org/2013/06/13/indexing-web-sites-in-solr-with-python/). –

-7

Scrapy ist aufgebläht und ein Overkill für viele Aufgaben. Überraschend langsam. Sein Code ist zerbrechlich, es gibt ständige Änderungen, die die Retrokompatibilität beeinträchtigen. Wenn Sie Scrapy verwenden, verbringen Sie mehr Zeit damit, Scrapy-Interna zu verstehen, mit denen Sie Dinge erledigen können.

+6

Hallo Franco, ich stimme nicht mit der Aussage überein, dass Scrapy langsam ist. Ich konnte ungefähr 25.000 Seiten von verschiedenen Seiten in ungefähr 2.5 Stunden crawlen. Ich bin glücklich mit dieser Crawling-Rate. Scrapy mag am Anfang etwas schwierig aussehen, aber wenn du anfängst, es mehr und mehr zu benutzen ... hättest du es gerne .. – Vidhu

+2

Ich habe einige Crawler mit Scrapy entwickelt und einige Benchmarks gegen Golang, PHP, C und Java Crawler gemacht die gleiche Aufgabe. Die Python-Lösung war mit Hilfe von Lxml plus Scrapy fast in der Nähe von C, die anderen waren langsamer. Das Einzige, was meiner Meinung nach verbessert werden kann, sind die Middleware-Integrationen in einigen Fällen. Ich habe Django Modelle auch Tor ohne Probleme integriert. –

+1

Ich stimme dem "constant change" Teil nicht zu und ich stimme nicht zu, dass scrapy schwer zu lernen ist. Im Gegensatz dazu würde ich sagen, dass Scrapy sehr einfach zu beginnen ist. Die Dokumentation ist auch sehr knackig. –