Thread HTML::LinkExtor: mein Testscript haut nicht hin :( (9 answers)
Opened by RPerl at 2007-07-01 14:50

RPerl
 2007-07-01 15:05
#78094 #78094
User since
2006-11-26
384 Artikel
BenutzerIn

user image
Wie meinst Du das?

// Edit:

$content ist danach auch gefuellt und wird uebergeben an den parser.

// Edit 2:

Ich mein, wenn ich es in eine Datei speichere, dann geht es ja prima!

Code (perl): (dl )
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
#!/usr/bin/perl

use strict;
use warnings;
use LWP::Simple;
use HTML::LinkExtor;

my $url = 'http://www.perl-community.de/';
my $content;

sub connect {
    $content = get($url);
    open(FH,">index.html");
    print FH $content;
    close(FH);
}

sub cb {
    my($tag, %links) = @_;
    print %links , "\n";
}


&connect();
my $p = HTML::LinkExtor->new(\&cb);
$p->parse_file("index.html");


Bis auf die tatsache das er die Links falsch parst.

Sieht so aus z.B.:

Code: (dl )
hrefhttp://perlmongers.de/?StuttgartPM


sollte aber wohl eher so aussehen:

Code: (dl )
http://perlmongers.de/?StuttgartPM


vielleicht bugs oder so.

Naja mal gucken was die anderen noch so dazu posten! :)

Danke und Gruß,

rPerl

// Edit 3:

So funktoniert es richtig:

Code (perl): (dl )
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
#!/usr/bin/perl

use strict;
use warnings;
use LWP::Simple;
use HTML::LinkExtor;

my $url = 'http://www.perl-community.de/';
my $content;

sub connect {
    $content = get($url);
    
    open(FH,">index.html");
    print FH $content;
    close(FH);
}

sub cb {
    my($tag, %links) = @_;
    while ( my ($key, $value) = each (%links)) {
        if($value) { 
            print $value , "\n"; 
        } else {
            print "[-] nix gefunden glaub ich";
        }
    }
}


&connect();
my $p = HTML::LinkExtor->new(\&cb);
$p->parse_file("index.html");
unlink("index.html");


Aber irgendwie zweifele ich an der Sauberkeit .oO\n\n

<!--EDIT|RPerl|1183290212-->

View full thread HTML::LinkExtor: mein Testscript haut nicht hin :(