- 论坛徽章:
- 0
|
#!/usr/bin/perl
use LWP::Simple;
use HTML: arser;
my $url = shift || "http://www.chinaunix.net";
my $content = LWP::Simple::get($url) or die("unknown url\n" ;
my $parser = HTML: arser->;new(
start_h =>; [\&start, "tagname, attr"],
);
$parser->;parse($content);
exit 0;
sub start
{
my ($tag, $attr, $dtext, $origtext) = @_;
if($tag =~ /^img$/) {
#改为 if($tag =~ /^a$/),就应该是找出所有链接的
#我是参考精华帖 Perl模块使用 =>; 简短例子代码集合! 第37个
#但是执行以后竟然没有任何结果,这是为什么?
if (defined $attr->;{'src'} )
{
print "$attr->;{'src'}\n";
}
}
}
我想把它改成把所有的连接获取后存在一个数组中,不知道该怎么写
sub get_hyperlinks {
my @links;
my ($data, $model) = @_;
my $parser = HTML: arser->;new(
start_h =>; [\&start, "tagname, attr"],
);
$parser->;parse($data);
return @links;
sub start
{
my ($tag, $attr, $dtext, $origtext) = @_;
# my ($link) = @$_;
if($tag =~ /^a$/)
{
if (defined $attr->;{'src'} )
{
$links[++$#links]= $attr->;{'src'};
}
}
}
}
上面的写法提示:Variable "@links" will not stay shared at yzu.pl |
|