
 |

Snipplet :: Links aus einer WebSeite extrahieren

Mit dem folgenden Beispiel ist es möglich alle Links aus einer externen Webseite zu extrahieren. Aus der Basis dieses Beispiels ist dann auch einfach möglich einen Roboter zu schreiben, der sich die ganze Webseite "gräbt". Dazu muss man einfach die URLs in dem Array @links wieder rekursiv durch das Script schicken, dabei könnte man durch einen Zähler noch die Grabbing-Tiefe festlegen. use LWP::UserAgent; use HTML::LinkExtor; use URI::URL;my $url = "http://www.perlunity.de/perl/start/"; my $ua = new LWP::UserAgent; my $p = HTML::LinkExtor->new(\&callback); my $res = $ua->request( HTTP::Request->new(GET => $url) , sub { $p->parse($_[0]) } ); my $base = $res->base; my @links = (); @links = map { $_ = url($_, $base)->abs; } @links ; print join("\n", @links), "\n"; sub callback { my($tag, %attr) = @_; return if $tag ne 'a'; #nur <a..>-Tags push(@links, values %attr); }
Anstelle der Zeile "if $tag ne 'a'" könnte man auch img oder andere Tags verwenden und kann so eine Listen mit allen möglichen Elementen erstellen, z.B. um fehlende Bilder zu ermitteln.
zurück zur Übersicht
Kommentare zu diesem Script/Snipplet

Noch keine Kommentare zu diesem Script/Snipplet vorhanden.
Alle Kommentare anzeigen - Kommentar hinzufügen

|

|

|