Wir basteln uns einen Webcrawler – Teil 1

Wir basteln uns einen Webcrawler – Teil 1

Vorwort

Nach der letzten Umfrage haben ja doch einige Interesse an einer Anleitung, wie man sich einen Webcrawler bastelt.
Wie chris im Kommentar angemerkt hat, können die auch ganz nützliche Sachen machen … nicht nur Hacken.

Wenn man Webcrawler im Netz liest, schießen einen wahrscheinlicher eher negative Dinge durch den Kopf, der StudiVz Hacker der sich mittels Crawler eine Datenbank angelegt hat, ins Gefängnis kam und dort auf mysteriöse Weise dem „Selbstmord“ erlag … oder Snowden (wie auch Chris angemerkt hat) … etc..
Es gibt aber wirklich sinnvolle Dinge die man mit diesen Crawlern umsetzen kann, so habe ich zum Bespiel beruflich einige Crawler laufen, die in Verbindung mit gewissen „Vorkommnissen“ automatisiert Emails verschicken.

Aufgliederung der Beiträge

Es wird insgesamt 3 Teile geben, wer die 3 Kurse absolviert, sollte anschließend in der Lage sein eigene Webcrawler zu schreiben.
Teil 1: Installation der Arbeitsumgebung unter Windows und Linux (Debian basierende Systeme (Debian, Ubuntu, Mint …)).
Links zu Tutorials HTML, PHP.
Teil 2:
Kleine Aufarbeitung PHP (nach selbst erarbeiteten Tutorial), Regex, Arrays (brauchen wir) Basics zu Webrequest, Webresponse. Beispielcode in PHP wie ein Crawler aufgebaut ist.
Teil 3: Wir schreiben uns einen Webcrawler. Ich werde mir hier eine schöne Seite aussuchen aus der wir uns sinnvolle Dinge ziehen. Der Teil wird so aufgebaut sein, dass ich meine Gedanken und Zwischenschritte bis zum finalen Code festhalte.

Installation Xampp unter Windows

Für unseren Crawler benötigen wir PHP, zudem ist es ganz sinnvoll, wenn wir noch einen Webserver hintendran haben.
Bei www.apachefriends.org bekommt Ihr ein kleines Bundle, dass für unsere Zwecke mehr als ausreichend ist.
Von den beiden angebotenen Versionen, habe ich mir für die PHP 5.6.3 entschieden.

neu-ist-immerbesser

Die Installation ist denkbar einfach, Installer herunterladen, per Doppelklick installieren, die Vorauswahl so belassen (zum Schluss den „learn more“ Haken brauchen wir nicht) – fertig.
Nach dem Installieren finden wir das Xampp Control Panel unter Programme:

xampp1

Wenn wir über dieses Controlpanel den Apache starten und localhost oder 127.0.0.1 über den Browser aufrufen, sollten wir eine Xampp default Seite sehen.
Die Seite die wir im Browser sehen, liegt im Installationsverzeichnis unter htdocs – sprich wenn beim Installieren nichts verändert wurde unter: c:\xampp\htdocs

xampp2

xampp2

Diese defaultseite löschen wir nun, ich würde dazu raten die Ordner stehen zu lassen, über xampp selbst sind noch einige nützliche Dinge, die man evtl. irgendwann noch braucht …
Also sprich alle Dateien unter htdocs löschen, die Unterordner aber stehen lassen.

xampp3

Die markierten Dateien löschen, Ordner stehen lassen!

Rufen wir nun 127.0.0.1 auf, wird uns ein Inhaltsverzeichnis gelistet, sprich die Ordner und Dateien (sind aktuell keine mehr da, da von uns gelöscht).
Dieses Inhaltsverzeichnis sehen wir immer, wenn im entsprechenden Ordner keine Datei mit dem Namen index (index.html, index.php …) vorhanden ist.
Jetzt noch 2 Tests, ob eigene HTML oder PHP Seiten laufen.
Ich habe dazu eine Datei in htdocs gelegt (test.html) und dort ein paar Zeilen HTML Code reingehauen. Falls man sich bei HTML nicht an Standards hält und einfach nur irgendwelchen Text reinhaut funktioniert das auch schon (Zum Glück, sonst wäre 98% des Internets kaputt xD).
xampp5

Jetzt müssen wir noch das PHP testen. Da ich zukünftig unseren PHP-Crawler per cmd/commandline aufrufen werde, hier die Anleitung wie man das unter Windows umsetzt.
Wir starten die Eingabeaufforderung (cmd) und wechseln in unser php Verzeichnis, welches unter c:\xampp\php\ liegt.

cd c:\xampp\php

Ich habe mal die Datei test.php in c:\xampp\php\ gelegt, dort ein paar Zeilen PHP Code reingehauen und dann aufgerufen.xampp6

Wir können diese Datei auch in c:\xampp\htdocs\ legen und dann mit dem Browser aufrufen, das Ergebnis wäre das selbe.

Installation PHP und Apache unter Linux

Benötigt wird im Grunde nur php5 bzw. php5-cli, ich werde hier dennoch die Schritte bis zum Apache2 erklären. Wer sich dazu berufen fühlt, einen anderen Webserver einzusetzen, darf das gerne machen.
Unter Debian basierenden Systemen via Commandline ein:

apt-get update

Fedoranutzer (yum), Suse (zypper). Dadurch schaut unser System nach, welches die aktuellen Pakete sind. Wir installieren uns den php5 und apache2 mittels:

apt-get install php5 apache2

Zuerst testen wir, ob uns php5-cli mit dem Paket mitgeliefert wurde. php5-cli ist der Interpreter der uns php in der Konsole zur Verfügung stellt.
Am besten feuern wir einfach mal einen PHP Befehl direkt in der Console ab:

php -r 'echo "hallo\n";'
Die Ausgabe sollte wie folgt aussehen:php-cli-test

Erscheint eine Fehlermeldung, bitte das Paket php5-cli nachinstallieren.

apt-get install php5-cli

Unseren Apache können wir unter root mittels init.d starten (start) oder stoppen (stop):

/etc/init.d/apache2 start
/etc/init.d/apache2 stop

Unser Dokumentenordner der HTML/PHP Files für den Webserver, ist voreingestellt unter /var/www bzw. /var/www/html zu finden.
Die Config hierfür ist unter /etc/apache2/sites-enabled/000-default.conf voreingestellt.

Wir legen nun eine Datei test.php in den Apache Ordner, also unter /var/www/ oder /var/www/html und schreiben dort eine Zeile PHP Code um die Funktionalität zu testen.

<?php
echo „hallo“;
?>

apache-te Ich selbst nutze zum PHP Scripten den Editor geany, den man sich auch mittels apt-get ziehen kann.

Die Ausgabe sollte auch im Browser erscheinen, wenn man die Seite mittels localhost/test.php aufruft.
Falls der Apache nicht bereit ist den Code zu parsen, installiert bitte folgendes Paket nach:

apt-get install libapache2-mod-php5

Vorbereitung für Teil 2

Wer noch keine PHP Kenntnisse hat, sollte unbedingt den Einsteigerkurs von Claudia unter schattenbaum.net machen.

Zum Thema HTML habe ich leider keinen Einsteigerkurs in der Hinterhand und würde euch da bitten selbst zu Googlen.
Wer gut verständliche Tutorials hat, ab hier in die Kommentare. Eine gute Referenz ist unter selfhtml zu finden.
Paar Dinge die Ihr wissen solltet.
Was ist der head Bereich, was der body Bereich. Wie sehen Hyperlinks aus, wie werden Bilder eingebunden. Ich würde dazu raten, einfach mal den Quellcode einiger Seiten anzuschauen und dann die verschiedenen Tags zu analysieren. JavaScript ist jetzt bei diesem ersten Crash-Kurs nicht notwendig.
Im Firefox (den benötigt Ihr für Teil 2) könnt Ihr mittels {STRG}+u den Quellcode der Seite anschauen.

Teil 2 findet Ihr hier -> Wir basteln uns einen Webcrawler – Teil 2

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.

*