perlunity.de - PERL | JAVASCRIPT | PHP | MySQL | APACHE



#!/COMMUNITY

Members: 5597
davon online: 1
weitere User: 1
Click for quality!



22.01.2018 / 14:50

Community-Member werden   |   Paßwort vergessen   |   OnlineMonitor (1) Wer ist online ... OnlineMonitor starten !
     

 

Home


PERLscripts


PHPscripts


JAVAscripts


Hilfreiches


Links2www


Newscenter


Community


Interna




Snipplet :: Links aus einer WebSeite extrahieren

Kategorie: Roboter

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.

Autor:   Markus
E-Mail:support@perlunity.de

zurück zur Übersicht



Kommentare zu diesem Script/Snipplet

0 Kommentar(e) vorhanden

Noch keine Kommentare zu diesem Script/Snipplet vorhanden.

Alle Kommentare anzeigen - Kommentar hinzufügen


-






-
-