Next Previous Contents

10. LibWWW

10.1 Descripción

LibWWW es un conjunto de módulos destinado a interactuar con la World Wide Web. Permite desde bajarse páginas web hasta crear robots "rastreadores" de páginas.

10.2 Ejemplo: extraer los links HTTP y FTP de la entrada estándar y comprobar si son válidos


#!/usr/bin/perl -w

use LWP::UserAgent;

sub comprobar
{
        my $url = $_[0];

        my $ua = new LWP::UserAgent;
        my $request = new HTTP::Request(GET => $url);

        my $respuesta = $ua->request($request);

        # Si quisiéramos ver el contenido de la respuesta:
        # print $respuesta->content;

        return $respuesta->is_success;
}
        
@fichero = <STDIN>;

$i = 0;

while ($i < $#fichero) {

        if ($fichero[$i] =~ /(http:\/\/)|(ftp:\/\/)/) {
                ($tmp, $url, $tmp2) = 
                        ($fichero[$i] =~ 
                                m#(^.*)(((http)|(ftp))://[A-Za-z0-9./~]+)([^A-Za-z0-9./]+.*$)#);

                print "URL $url: ";
                
                if (comprobar $url) {
                        print "correcta.\n";
                }
                else {
                        print "incorrecta.\n";
                }

                $fichero[$i] = $tmp . $tmp2;
        }
        else {
                $i++;
        }
}


Next Previous Contents