Simran wrote:

> Hi All,
> 
> Can someone suggest a really simple CPAN module that will validate links
> on a website.
> 
> I need something like linklint - except that it needs to be on very very
> simple, and i'm sure there is a CPAN module out there i can use (i just
> can't seem to find a good one)...
> 
> All i need to do is:
> 
> * Validate the links on pages on a particular site
> 
> The reason i don't want to use linklint is that it has some hardcoded
> output formats, and i need to output to a very specific html output
> format, so a perl module that just traversed a site and returned the
> results (rather than save them to a file) would be idea.

HTML::LinkExtor can probably help you here. a simple demo:

#!/usr/bin/perl -w
use strict;

use LWP::UserAgent;
use HTML::LinkExtor;

#--
#-- i am being very lazy in the demo
#-- you should really localize it in a block
#--
local $/;

my $p = HTML::LinkExtor->new(\&hrefs)->parse(<DATA>);

sub hrefs{

        my($tag,@links) = @_;

        return unless($tag =~ /^a$/i);

        my $p = LWP::UserAgent->new->request(
                 HTTP::Request->new(GET => $links[1]));

        print $p->is_success ? "GOOD: $links[1]" :
              $p->status_line . " $links[1]", "\n";
}

__DATA__
<html>
<a href="http://www.ibm.com";>
<br>
<a href="http://www.perldoc.com";>
<a href="http://www.not-found99.com";>
</html>

__END__

prints:

GOOD: http://www.hotmail.com
GOOD: http://www.perldoc.com
500 Can't connect to www.not-found99.com:80 (Bad hostname 
'www.not-found99.com') http://www.not-found99.com

i believe the HTML::LinkExtor has a better and more complete example so you 
should check it out:

perldoc HTML::LinkExtor

david
-- 
s,.*,<<,e,y,\n,,d,y,.s,10,,s
.ss.s.s...s.s....ss.....s.ss
s.sssss.sssss...s...s..s....
...s.ss..s.sss..ss.s....ss.s
s.sssss.s.ssss..ss.s....ss.s
..s..sss.sssss.ss.sss..ssss.
..sss....s.s....ss.s....ss.s

,....{4},"|?{*=}_'y!'+0!$&;"
,ge,y,!#:$_(-*[./<[EMAIL PROTECTED],b-t,
.y...,$~=q~=?,;^_#+?{~,,$~=~
y.!-&*-/:[EMAIL PROTECTED] ().;s,;,
);,g,s,s,$~s,g,y,y,%,,g,eval

-- 
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]
<http://learn.perl.org/> <http://learn.perl.org/first-response>


Reply via email to