zhumao

新手上路

  博客园 :: 首页 :: 博问 :: 闪存 :: 新随笔 :: 联系 :: 订阅 订阅 :: 管理 ::

从网页中提取链接

以下是HTML::LinkExtor中的一个提取图片链接的例程


#!/usr/bin/perl -w
use LWP::UserAgent;
use HTML::LinkExtor;
use URI::URL;
$url = "http://www.163.com/"; # for instance
$ua = LWP::UserAgent->new;
# Set up a callback that collect image links
my @imgs = ();
sub callback
{
my($tag, %attr) = @_;
return if $tag ne 'img';
push(@imgs, values %attr);
}
# Make the parser. Unfortunately, we don’t know the base yet
# (it might be diffent from $url)
$p = HTML::LinkExtor->new(\&callback);
# Request document and parse it as it arrives
$res = $ua->request(HTTP::Request->new(GET => $url),sub );
# Expand all image URLs to absolute ones
my $base = $res->base;
@imgs = map { $_ = url($_, $base)->abs; } @imgs;
#Print them out
print join("\n", @imgs), "\n";
posted on 2005-08-09 21:44  zhumao-2  阅读(2438)  评论(0编辑  收藏  举报