2010-07-08 8 views
42

Kann jemand in Bezug auf Umfang und Funktionalität zwischen einem Crawler und einem Scraper unterscheiden.Crawler vs Scraper

+2

Diese Begriffe haben keine genauen Definitionen. Haben Sie Anwendungsbeispiele? –

+0

Ich möchte eine Anwendung schreiben, die auf der Grundlage einiger xpath-basierter Regeln über eine Website läuft (folgen Sie bestimmten Hyperlinks) und dann Daten aus einigen Blattseiten extrahieren. Es umfasst also sowohl Crawlen als auch Scrappen. Ich muss die bestmöglichen Tools für beide Schritte herausfinden. – Nayn

+0

Viele Plattformen eignen sich hervorragend zum Herunterladen von Webseiten und zum Anwenden von RegExp zum Extrahieren von Links oder Scraped-Werten. Verwenden Sie, was Sie wissen. –

Antwort

62

Ein Crawler bekommt Webseiten - dh, eine Startadresse (oder eine Menge von Startadressen) und einige Bedingungen (zB wie viele Links zu gehen, Dateitypen, die ignoriert werden sollen) lädt alles herunter, von dem verlinkt wird der Startpunkt (die Startpunkte).

Ein Scraper nimmt Seiten, die heruntergeladen wurden [Edit: oder, in einem allgemeineren Sinne, Daten, die für die Anzeige formatiert werden], und (versucht) Daten von diesen Seiten zu extrahieren, so dass es (zum Beispiel) sein kann in einer Datenbank gespeichert und wie gewünscht manipuliert.

Je nachdem, wie Sie das Ergebnis verwenden, kann das Scraping die Rechte des Eigentümers der Informationen und/oder Benutzervereinbarungen über die Verwendung von Websites verletzen (Crawling verletzt diese in einigen Fällen auch). Bearbeiten: Wie von Steven Sudit erwähnt, enthalten viele Websites eine Datei mit dem Namen robots.txt in ihrem Stamm (dh mit der URL http://server/robots.txt), um anzugeben, wie (und wenn) Crawler diese Website behandeln sollten - insbesondere kann sie (teilweise) URLs auflisten Ein Crawler sollte nicht versuchen, ihn zu besuchen. Diese können, falls gewünscht, separat pro Crawler (User-Agent) angegeben werden.

+7

Wir sollten wahrscheinlich die robots.txt-Datei erwähnen, die Crawlern sagt, dass sie nicht crawlen sollen. –

+0

+1 zum Hinzufügen der robots.txt-Informationen. –

+0

@Steven: Ups - ich entschuldige mich dafür, dass du deinen Namen falsch geschrieben hast. –

3

Crawler surfen im Internet, folgen Sie den Links. Ein Beispiel wäre der Google-Roboter, der Seiten zum Indexieren erhält. Schaber extrahieren Werte aus Formularen, haben aber nicht unbedingt etwas mit dem Web zu tun.

+4

Scraper extrahieren Werte aus HTML, nicht unbedingt Formen. –

+3

Scraper extrahieren Wert von Bildschirmen, nicht unbedingt HTML. Zum Beispiel habe ich einmal einen Scraper verwendet, um Werte aus alten Mainframe-Formularen zu extrahieren. –

+4

Ich kann Google keine Freikarte dafür geben. Google ist ein Crawler, ja, aber auch ein Scraper. Wie sonst haben sie die Meta-Beschreibung, die in den Suchergebnissen angezeigt wird?der Titel? die Daten von Posts? Sie sind der ultimative Crawler UND Scraper. –

3

Web-Crawler ruft Links (URLs - Seiten) in einer Logik und scrapper erhalten Werte (Extrahieren) aus HTML.

Es gibt so viele Web-Crawler-Tools. Visit page um einige zu sehen. Jeder XML-HTML-Parser kann zum Extrahieren (Verwerfen) von Daten von durchforsteten Seiten verwendet werden. (Ich empfehle Jsoup zum Analysieren und Extrahieren von Daten)

0

Im Allgemeinen würden Crawler den Links folgen, um zahlreiche Seiten zu erreichen, während Scraper in gewissem Sinne nur die online angezeigten Inhalte ziehen und die tieferen Links nicht erreichen würden.

Der typischste Crawler ist Google Bots, der den Links folgen würde, um alle Webseiten auf Ihrer Website zu erreichen und den Inhalt zu indizieren, wenn sie ihn nützlich fanden (deshalb brauchen Sie robots.txt um zu sagen, welchen Inhalt Sie machen) nicht indiziert werden wollen). So könnten wir solche Inhalte auf seiner Website suchen. Der Zweck von Scraper ist es nur, den Inhalt für den persönlichen Gebrauch zu ziehen und würde nicht viele Auswirkungen auf andere haben.

Es gibt jedoch keinen eindeutigen Unterschied in Bezug auf Crawler und Scraper, da einige automatische Web-Scraping-Tools auch das Crawlen der Website über Links wie Octoparse und import.io ermöglichen. Sie sind nicht die Crawler wie Google Bots, aber sie können die Websites automatisch crawlen, um zahlreiche Daten ohne Codierung zu erhalten.