httrack wget curl scrape & fetch

8

Es gibt eine Reihe von Tools im Internet zum Herunterladen einer statischen Kopie einer Website wie HTTrack. Es gibt auch viele Tools, einige kommerzielle, um Inhalte von einer Website wie Mozenda zu "scrapen". Dann gibt es Tools, die anscheinend in Programme wie PHP und * nix eingebaut sind, wo man "file_get_contents" oder "wget" oder "cURL" oder einfach "file ()" finden kann.

Ich bin völlig verwirrt von all dem, und ich denke, der Hauptgrund ist, dass keine der Beschreibungen, die mir begegnet sind, das gleiche Vokabular verwenden. Auf der Oberfläche scheint es zumindest so zu sein, als würden alle dasselbe tun, aber vielleicht auch nicht.

Das ist meine Frage. Was machen diese Werkzeuge genau? Machen sie das Gleiche? Machen sie dasselbe mit unterschiedlicher Technologie? Wenn sie nicht dasselbe tun, wie unterscheiden sie sich?

    
Malik A. Rumi 30.09.2013, 15:39
quelle

2 Antworten

9

Lassen Sie mich zuerst den Unterschied zwischen "Spiegeln" und "Kratzen" verdeutlichen.

Spiegelung bezieht sich auf das Herunterladen des gesamten Inhalts einer Website oder einiger markanter Abschnitte (einschließlich HTML, Bilder, Skripts, CSS-Stylesheets usw.). Dies wird oft getan, um den Zugang zu einer wertvollen (und oft begrenzten) Internet-Ressource zu erhalten und zu erweitern oder um zusätzliche Failover-Redundanz hinzuzufügen. Zum Beispiel spiegeln viele Universitäten und IT-Unternehmen die Release-Archive verschiedener Linux-Anbieter wider. Die Spiegelung kann bedeuten, dass Sie beabsichtigen, eine Kopie der Website auf Ihrem eigenen Server zu hosten (mit der Erlaubnis des ursprünglichen Rechteinhabers).

Scraping bezieht sich auf das Kopieren und Extrahieren einiger interessanter Daten von einer Website. Im Gegensatz zur Spiegelung zielt das Scraping auf einen bestimmten Datensatz (Namen, Telefonnummern, Aktienkurse usw.) und nicht auf den gesamten Inhalt der Website. Sie können beispielsweise Daten zum Durchschnittseinkommen aus dem US Census Bureau oder Aktienkurse von Google Finance "scrapen". Dies geschieht manchmal gegen die Bedingungen des Gastgebers und macht es illegal.

Die beiden können kombiniert werden, um das Kopieren von Daten (Spiegeln) von den Bedenken hinsichtlich der Informationsextraktion (Schaben) zu trennen. Beispielsweise können Sie eine Site schneller spiegeln und dann Ihre lokale Kopie abkratzen, wenn die Extraktion und Analyse der Daten langsam oder prozessintensiv ist.

Um den Rest Ihrer Frage zu beantworten ...

file_get_contents und file PHP-Funktionen dienen zum Lesen einer Datei von einem lokalen oder Remote-Rechner. Die Datei kann eine HTML-Datei oder eine andere Datei sein, z. B. eine Textdatei oder eine Tabelle. Dies bezieht sich normalerweise nicht auf "Spiegeln" oder "Kratzen", obwohl Sie mit diesen einen eigenen PHP-basierten Spiegel / Schaber schreiben könnten.

wget und curl sind eigenständige Befehlszeilenprogramme zum Herunterladen einer oder mehrerer Dateien von Remote-Servern unter Verwendung einer Vielzahl von Optionen, Bedingungen und Protokollen. Beide sind unglaublich mächtige und beliebte Werkzeuge, der Hauptunterschied besteht darin, dass wget über reichhaltige integrierte Funktionen zum Spiegeln ganzer Websites verfügt.

HTTrack ähnelt in seiner Absicht wget , verwendet jedoch eine GUI anstelle einer Befehlszeile. Dies macht es einfacher für diejenigen, die nicht komfortabel Befehle von einem Terminal aus ausführen, auf Kosten der Macht und Flexibilität von wget .

Sie können HTTrack und wget für die Spiegelung verwenden, aber Sie müssen Ihre eigenen Programme auf den resultierenden heruntergeladenen Daten ausführen, um Informationen zu extrahieren, wenn dies Ihr ultimatives Ziel ist.

Mozenda ist ein Scraper, mit dem Sie im Gegensatz zu HTTrack , wget oder curl bestimmte Daten gezielt extrahieren können, anstatt blind alle Inhalte zu kopieren. Ich habe jedoch wenig Erfahrung damit.

P.S. Normalerweise verwende ich wget , um die HTML-Seiten zu spiegeln, die mich interessieren, und führe dann eine Kombination aus Ruby- und R-Skripten aus, um Daten zu extrahieren und zu analysieren.

    
Arman H 30.09.2013, 20:25
quelle
2

Es gibt noch eine Sache, eher technische, die gesagt werden würde: Während des Downloads (Spiegelung) lädt HTTrack / wget / curl nicht nur viele HTML-Dateien herunter, sondern ändert auch interne Links in diesen Dateien - so dass diese Links ein korrektes "Ausführen" der heruntergeladenen Webseiten an dem neuen Ort (oder an neuen) erlauben Domäne oder auf Ihrem lokalen). Diese internen Links beinhalten: Links von einer heruntergeladenen Seite zu einer anderen heruntergeladenen Seite, Links zu eingebetteten Bildern und anderen Medien und Links zu "Hilfsdateien", wie Javascripts, CCS und so weiter.

    
johhan 02.11.2013 08:57
quelle