Comment faire plus simple
Bonjour j'ai un petit bout de code destiné a extraire des liens d'une page web mon code fonctionne mais je voudrais qu'il soit,plus simple car le foreach() prend quand même du temps , j'ai essayer de faire moi meme mais je n'y suis pas arrivé :(
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
| sub extraire_liens {
my (@liens, $lesliens);
$code = shift;
$url = shift;
my $parseur = HTML::LinkExtor->new(sub {
my($tag, %attr) = @_;
return if $tag ne 'a';
push(@liens, values %attr);
});
$parseur->parse($code);
foreach my $uri ( map { $_ = url($_, $url)->abs; } @liens ) {
$lesliens->{$uri} = 1;
}
return $lesliens;
} |