2011-02-20T18:25:34
grosseskinoIch möchte einen Crawler bzw. Scraper in Perl schreiben und bräuchte mal ein paar Tipps für die richtige Vorgehensweise.
*Ich möchte einen Crawler schreiben, der einen Host auf alle Links durchsucht
*Jeder Link dessen URL nicht /forum/ oder /blog/ enthält, soll gecrawlt werden
*Jede Seite die den zuvor genannten Anforderungen entspricht soll auf vordefinierte Tags untersucht werden (z.B. Jazz, Rock, Blues,...)
*Als Ergebnis möchte ich eine Mysql Datenbank erstellen, in der z.B. das Tag "Jazz" mit allen URLs verlinkt wird, in denen das Tag gefunden wurde
Nun meine Frage:
Welche Module sollte ich benutzen?
Ich gehe mal davon aus, dass Du auf den Host über HTTP zugreifen und dann HTML-Seiten runterladen willst, die Du auf die Links untersuchst.
Ich habe vor Jahren mal ähnliches gemacht. Damals habe ich
LWP::RobotUA für's Holen der Seiten und
HTML::LinkExtor zum Extrahieren der Links eingesetzt.
Wenn Du die HTML-Seiten neben Links noch auf andere Dinge untersuchen willst, empfehle ich Dir
HTML::TreeBuilder. Dann kannst Du auf
HTML::LinkExtor verzichten und Dir die Links selbst aus dem HTML-Tree holen.
Als Schnittselle zu Datenbank dient selbsterverständlich
DBI.