use strict; use LWP::UserAgent; use URI::URL; my $url = URI::URL->new('http://cnn.com'); my $base_url; #Creating new UserAgent browser my $ua = LWP::UserAgent->new(); #Agent named $ua->agent ("Netscape"); #Create HTTP request my $request = HTTP::Request->new(GET => $url); #Execute request my $response = $ua->request($request); #Check for success if ($response->is_success && $response->content_type eq 'text/html') { #request successful & html $base_url = $response->base(); print "Base URL: $base_url\n"; my $link_extor = HTML::LinkExtor->new(\&extract_links); $link_extor->parse($response->content); } else { #request failed print "Error getting document: ", $response->status_line, "\n"; } sub extract_links { my ($tag, %attr) = @_; if ($tag eq 'a' or $tag eq 'img') { foreach my $key (keys %attr) { if ($key eq 'href' or $key eq 'src') { my $link_url = URI->new($attr{$key}); my $full_url = $link_url->abs($base_url); print "LINK: $full_url\n"; } } } }