¡Ya estamos en Twitter!

Perl en Español

  1. Home
  2. Tutoriales
  3. Foro
  4. Artículos
  5. Donativos
  6. Publicidad

Descargar Imagenes via HTTP

por Uriel Lizama

Introducción

Hay una historieta que se llama Calvin & Hobbes que me encanta, pues me parece muy buena.

Una vez navegando encontré un sitio que tenía el archivo con todas las historietas, me pareció genial así que decidi descargarlas por si en algun momento se salía de linea el sitio.

Quizá no lo sepan pero soy muy flojo, por lo que me dio mucha flojera estar cliqueando en cada imagen para guardarla en el disco, así que decidí hacer un pequeño programita en perl que descargará las imagenes al disco.

Primer Paso

Lo primero que hice fue entrar a CPAN y buscar algun módulo que me ayudara con el problema, y pues como es costumbre lo encontré fácilmente.

El módulo que vamos a usar para este tutorial, y para poder descargar las imagenes es el Image::Grab.

Descargando las imágenes

Como es lógica lo primero que tenemos que hacer es decirle a perl que queremos usar el módulo:

use Image::Grab;

El siguiente paso es crear un objeto con el módulo:

my $img = new Image::Grab;

Ahora si ya que tenemos nuestro objeto creado empezemos con lo bueno.

$img->url('http://www.sitio.com/imagen.jpg');
$img->grab;

En la primera linea estamos diciendole a nuestro objeto cual es el URL de la imagen que queremos descargar, y con la segunda linea le estamos diciendo que descarge la imagen.

El código de la imagen lo va a descargar en este caso a $img->image.

Lo que sigue es ver si la imagen fue descargada y guardarla en un archivo, de lo contrario vamos a desplegar un error.

if($img->image){

#Salvamos la imagen al disco
open(IMAGEN, ">img_descargada.jpg") || die"No se pudo crear archivo: $!";
binmode IMAGEN; #para derivados de MSDOS.
print IMAGEN $img->image;
close IMAGEN;

#EXITO
print "La imagen fue descargada con éxito\n";

}else{
print "NO EXISTE LA IMAGEN\n";
}

Listo ya tenemos el código para descargar imagenes de sitios en la web.

Código Final

#!/usr/bin/perl -w

use strict;
use Image::Grab;


my $img = new Image::Grab;
$img->url('http://www.sitio.com/imagen.jpg');
$img->grab;

if($img->image){

#Salvamos la imagen al disco
open(IMAGEN, ">img_descargada.jpg") || die"No se pudo

crear archivo: $!";
binmode IMAGEN; #para derivados de MSDOS.
print IMAGEN $img->image;
close IMAGEN;

#EXITO
print "La imagen fue descargada con éxito\n";

}else{
print "NO EXISTE LA IMAGEN\n";
}

exit(1);


¿Quiéres más tutoriales como este? Escribir tutoriales toma una gran cantidad de tiempo y esfuerzo. Si este tutorial te ayudó a aprender o a solucionar algo, por favor considera dejar alguna donación en apoyo a Perl en Español.

Cliquea en el botón de abajo para dejar tu donación por medio de PayPal.

Comparte:
Categorías de Tutoriales:
En Nuestros Foros:

    Software error:

    junk after document element at line 1, column 32, byte 32 at /usr/lib64/perl5/vendor_perl/XML/Parser.pm line 187.
    

    For help, please send mail to the webmaster ([email protected]), giving this error message and the time and date of the error.

  • Entra a los foros »
Socializa:
Síguenos por Twitter

Suscríbete GRATUITAMENTE al Boletín de Perl en Español

Perl en Español es mantenido con Movable Type
Todo el contenido de Perl en Español está bajo una licencia CC:
Creative Commons License