lunes, junio 04, 2007

Mi robot, en Perl

Hoy quiero poner aquí un ejemplo, obtenido de cpan.org, de como realizar un pequeño robot para navegar por internet, bajo Windows. Usando los módulos Win32::OLE y Win32::IEAutomation. Por supuesto, hay que bajarse e instalar ambos módulos(el primero de ellos es necesario para usar el segundo). Este ejemplo esta ejecutado como cgi bajo Apache. Este es el código:

#!C:\perl\bin\perl.exe -w

use Win32::OLE;
use Win32::IEAutomation;

print "Content-type: text/html";
print "Mi robot accediendo a Google\n";
print "\n";

my $ie=Win32::IEAutomation->new( visible => 0, maximize => 1);

$ie->gotoURL('http://www.google.com');
@lista=$ie->getAllLinks();
foreach (@lista){
print $_->linkText();
print "\n";
}



El código es una pequeña modificación de un ejemplo del módulo Win32::IEAutomation. He tenido que sustituir las etiquetas de salto de línea en HTML por '\n', porque el editor de entradas del blog me juega una mala pasada.

Este pequeño programa accede a www.google.com y obtiene todos los links de la página principal, sin necesidad de explorador.

Una de las posibles aplicaciones podría ser la realización de una extensa batería de pruebas para testear nuestros proyectos web, o simplemente, realizar nuestro propio buscador con algunas tareas específicas.

Se me ocurren muchas más aplicaciones prácticas para este código, pero cuando veas las funciones que incorpora el módulo Win32::IEAutomation seguro que más de uno se divertirá pensando en todas las posibilidades. Un saludo y que lo disfruten.

3 comentarios:

Anónimo dijo...

Disculpa, tal vez ésto te suene muy de principantes, pero, ¿cómo se instala el módulo 'Win32::IEAutomation'?
En la página de cpan dice que hay que escribir:
perl Makefile.PL
make
make test
make install
Pero, eso en dónde se hace o cómo, porque cuando lo hago en al terminal de windows me pone un mensaje que dice.
"Could not open lib/Win32/IEAutomation.pm: no such file or directory at C:/Perl/lib/ExtUtils/MM_Unix.pm line 26669"

Ya intenté copiar la carpeta lib que viene en el comprimido y que contiene el archivo que pide en la carpeta donde dice que no viene, pero me sigue apareciendo ese mensaje, ¿qué hago?

Emilio dijo...

Hola Anónimo,
antes de nada, gracias por estar curiosar por estos rincones de internet.

Si estás bajo Windows, hay una utilidad que viene con Perl, llamada PPM, Perl Package Manager, y es la manera más sencilla para instalar paquetes bajo windows.

Te pongo este enlace y espero que tengas suerte con la instalación. Son pasos muy sencillos de seguir.

Un saludo

Emilio dijo...

Por cierto, ten cuidado si te conectas a través de un proxy. Lo intenté una vez en el trabajo y no lo conseguí porque estaba tras un proxy. Mira aquí para configurar el proxy para poder usar el PPM correctamente.

Saludos