www.farid-hajji.net banner

Farid Hajji

Perl: Einführung, Anwendungen, Referenz (2/e) [Support-Site]

Farid Hajji: Perl - Einführung, Anwendungen, Referenz
2., aktualisierte und erweiterte Auflage
Addison-Wesley Longman, ISBN 3-8273-1535-2

Ergänzung

html-parse-links1.pl
#!/usr/local/bin/perl -w
# html-parse-links1.pl -- Links aus einer HTML-Datei extrahieren
#                   mit HTML::LinkExtor und Callback-Funktion.

use HTML::LinkExtor;

my $p = HTML::LinkExtor->new(\&callback);  # Erzeuge einen Parser.
$p->parse_file($ARGV[0]);                  # Name der zu parsenden Datei
                                           # auf der Kommandozeile.

print "<a>-Links  :\n", join("\n", @alinks), "\n";
print "<img>-Links:\n", join("\n", @pics),   "\n";
print "Other Links:\n", join("\n", @others), "\n";

# Diese Callback-Funktion callback() wird jedesmal aufgerufen,
# wenn die HTML::LinkExtor()-Instanz $p einen Link-Tag gefunden hat.
# Bei <tagname attr1=url1 attr2=url2>
# wird in @_ uebergeben: (tagname, attr1 => url1, attr2 => url2)
# Beachte, dass bei Bedarf tagname und attr1, attr2 in Kleinbuchstaben
# konvertiert werden, bevor callback() aufgerufen wird!
sub callback {
    my ($tag, %links) = @_;

    # Je nach Typ der Links unterschiedlich reagieren:
    if ($tag eq 'a') {
    # Ein <a>-Link:
    push(@alinks, values %links);
    } elsif ($tag eq 'img') {
    # Ein <img>-Link:
    push(@pics, values %links);
    } else {
    # Ein anderer Typ von Links:
    push(@others, values %links);
    }
}
   

[Prev] [Up] [Relevant Chapter] [Next]

[Alte Quelle]


Last modified: $Date: 2006/05/18 12:55:48 $
FH. Search :: Sitemap :: Disclaimer :: Copyright :: Privacy
FreeBSD Logo