use strict;
use warnings;
use HTML::LinkExtor;
use LWP::UserAgent;
use URI::URL;
sub parsedocument
{
my ($url) = @_;
my $ua = LWP::UserAgent->new;
$ua->env_proxy();
# Set up a callback that collect image links
my @imgs = ();
my $callback = sub {
my($tag, %attr) = @_;
return if $tag ne 'img'; # we only look closer at
push(@imgs, values %attr);
};
my $p = HTML::LinkExtor->new($callback);
# Request document and parse it as it arrives
my $res = $ua->request(HTTP::Request->new(GET => $url),
sub {$p->parse($_[0])});
# Expand all image URLs to absolute ones
my $base = $res->base;
@imgs = map { $_ = url($_, $base)->abs; } @imgs;
# Print them out
print join("
", @imgs), "
";
}
map {parsedocument($_) } @ARGV;