Al fin y al cabo 1 semana no es mucho tiempo (de ahí que se pase rapidísima cuando uno tiene los pies en remojo en aguas levantinas), no obstante incluso en vacaciones surgen conversaciones de seguridad o al menos se te ocurren ideas para la vuelta. Así ocurrió cuando tras pasar por Terra Mitica decidimos comprar una de esas fotos que te tiran cuando llevas cara de "Speed". En este caso la compra se tradujo en un ticket con un código donde te metes en un sitio web y tras meterlo te puedes bajar la foto. La estructura del código era la siguiente:
Nombre del Parque: TM (Terra Mitica)
Atracción: Cataratas del Nilo (CN)
Mes: X
Dia: YY
Codigo de imagen: JZZZZ (ZZZZ à [0-9999]
Así por ejemplo TMCN707J1384 será la foto 1384 disparada el 7 de Julio en Cataratas del Nilo en Terra Mitica, ahora bien solo se suben las fotos que son adquiridas, el resto se eliminan (supongo). Al final este código se traduce en una URI que te adentra en un árbol de directorios hasta tu foto:
http://www.sitioweb_empresafotos.com/RIDES/TMCN/702/FullRes/codigofoto.jpg
#!/usr/bin/perl
#Spider by GigA#
use LWP::Simple;
use LWP::UserAgent;
my $ua = LWP::UserAgent->new;
$ua->timeout(1);
$ua->env_proxy;
use ExtUtils::MakeMaker;
print "Spider 0.01 by GigA\n";
print "We start the download series, $i\n";
my $user = prompt "Proxy user:";
my $password = prompt "Proxy password:";
$ENV{HTTP_PROXY} = 'http://proxy.local:8080';
$i = $i -1;
for($i=1000;$i<2000;$i++){
$string = '0' x ( 4 - length($i) ) . $i;
my $status = getstore("http://www.sitio_empresa.com/RIDES/TMCN/704/FullRes/J$string.jpg", "J$string.jpg");
if ( is_success($status) )
{
print "File downloaded correctly\n";
}
else
{
print "Error downloading file J$string.jpg: $status\n";
}
}
Le he incluido autenticación por Proxy aunque te funcionará igualmente si no pones nada, viendo la potencia y sencillez de PERL pillarme un librito para aprender realmente será obligación este verano.
¿Cómo mejorar este pequeño script? Ocultando o cifrando los caracteres mostrados en pantalla, permitiendo que detecte y busque en subcarpetas, acelerando el tiempo de las busquedas, etc. Etc. Vamos, todo lo que puede hacer un programa para hacer “site download” pero sin realizar búsquedas en el código de la pagina Web.
¿Sugerencias?
Salu2!
3 comentarios:
¡Muy chulo! Así, así, sin dejar a la mente descansar :)
Para el próximo, tal vez te animes con el "Perl elegante", Python... yo también le tengo ganas a este lenguaje, y quería aprovechar el verano para mirar algunas cosillas en el mismo.
¡Saludos!
Ups, escribí con la cuenta de Google: soy Lobosoft :P
jeje, ya te conozco en tus multiples personalidades :)
Seguiremos alimentando a ella-laraña, por cierto me parece más comodo Perl que Python, aunque para gustos xD
Salu2!
Publicar un comentario