in reply to Image grabber remotely hosted

This is from the HTML::LinkExtor documentation:
use LWP::UserAgent; use HTML::LinkExtor; use URI::URL; $url = "http://www.sn.no/"; # for instance $ua = new LWP::UserAgent; # Set up a callback that collect image links my @imgs = (); sub callback { my($tag, %attr) = @_; return if $tag ne 'img'; # we only look closer at <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 {$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("\n", @imgs), "\n";
Now instead of printing those urls, just fetch them using LWP.

Replies are listed 'Best First'.
RE: Re: Image grabber remotely hosted
by damian (Beadle) on Sep 04, 2000 at 12:11 UTC
    what if i don't want to use modules, as in pure perl? can this be done?

      Sure it can be done. But why bother when the modules are there to make your life easier?

      LWP::Simple, HTML::Parser (version 2) and HTML::LinkExtor are all pure-Perl modules, so if you want to know how to so it, just look at the source for these modules.

      --
      <http://www.dave.org.uk>

      European Perl Conference - Sept 22/24 2000, ICA, London
      <http://www.yapc.org/Europe/>