2010-11-09 20 views
11

Was ist Ihre Empfehlung einen Web Crawler in Ruby zu schreiben? Jede lib besser als mechanisieren?Web Crawler in Ruby

+2

Besser in welcher Weise? –

+0

Mechanize ist ein großartiges Werkzeug, wenn Sie eine Website navigieren, Formulare ausfüllen, sich authentifizieren müssen usw. Es ist keine Spinne, weil Sie ihm sagen müssen, wie alles zu machen ist. Ich habe Anemone nicht ausprobiert, aber seine Eigenschaften sehen gut aus. Was auch immer Sie tun, stellen Sie sicher, dass Sie die 'robots.txt' Datei auf der Seite, gegen die Sie laufen, respektieren, oder drosseln Sie Ihren Code zurück. Schlecht benommene Spinnen können dich verbannen. Eine Spinne zu schreiben ist nicht so schwer; Ich habe mehr geschrieben, als ich mich erinnern kann. Einen guten Bürger zu schreiben, der robust ist, ist eine größere Aufgabe, wenn möglich mit einem vormontierten Rad. –

+0

Ich würde empfehlen zu betrachten "[Was sind einige gute Ruby-basierte Web-Crawler?] (Http://stackoverflow.com/questions/4981379/what-are-some-good-ruby-based-web-crawlers/4981595) " –

Antwort

25

Ich würde versuchen, anemone. Es ist einfach zu verwenden, besonders wenn Sie einen einfachen Crawler schreiben müssen. Meiner Meinung nach ist es auch gut gestaltet. Zum Beispiel habe ich ein Ruby-Skript geschrieben, um in kürzester Zeit nach 404-Fehlern auf meinen Seiten zu suchen.

+0

Sie sollten einen Hinweis darauf schreiben, da ich bald die gleiche Funktionalität implementieren werde. Andere würden es wahrscheinlich auch benutzen. – cha55son

5

Sie möchten vielleicht wombat auschecken, die auf Mechanize/Nokogiri aufgebaut ist und eine DSL (wie Sinatra, zum Beispiel) zum Parsen von Seiten bietet. Recht ordentlich :)

1

Ich arbeite an pioneer gem, die nicht eine Spinne ist, sondern ein einfacher asynchronen Crawler basierend auf em-synchrony gem

+1

Am besten kann ich sagen, 'web spider' und 'web crawler' sind auch. –

+0

Englisch ist nicht meine Muttersprache, also kann ich falsch liegen, aber es scheint mir, dass Crawler etwas allgemeiner als Spinne ist. Spider ist eine Art kompletter Stoff: rekursiv durch Links surfen. Und Pionier ist mehr wie ein kleiner Rahmen. Du könntest deine eigene Spinne mit Pionier schreiben und du kannst mehr;). Aber Sie müssen mehr Arbeit manuell erledigen, um Pionier zu verwenden, aber es ist agiler. – fl00r

+1

Laut [Wikipedia] (http://en.wikipedia.org/wiki/Web_crawler): "Andere Begriffe für Web-Crawler sind Ameisen, automatische Indexer, Bots, Web-Spinnen, Web-Roboter ..." Dies entspricht der [StackOverflow-Synonyme für Web-Crawler] (http://stackoverflow.com/tags/web-crawler/synonyms). –

0

ich nur eine kürzlich veröffentlichten Klepto genannt. Es hat eine ziemlich einfache DSL, ist auf Capybara gebaut und hat viele coole Konfigurationsmöglichkeiten.

+2

Wäre schön, wenn Sie Ihre Antwort erweitern und mehr über diese coolen Optionen erklären könnten und warum Ihre Bibliothek besser für die Aufgabe ist. Seien Sie auch vorsichtig, wenn Sie Links zu Ihren eigenen Projekten veröffentlichen. Die Community kann sie als etwas spammig betrachten. – Kev