• Publicidad

Descargar imágen de sitio web

¿Apenas comienzas con Perl? En este foro podrás encontrar y hacer preguntas básicas de Perl con respuestas aptas a tu nivel.

Descargar imágen de sitio web

Notapor lis » 2018-07-17 16:09 @714

Hola, Perleros.

Estoy tratando de descargar imágenes de un sitio web mediante un código que realizó explorer en su momento. Este descarga la imagen pero no puedo abrirla (dice que no se puede cargar).

Les pido orientación al respecto. Muchas gracias.

PD: El código que muestro no es el original, lo modifiqué con ejemplos de Internet.
Sintáxis: [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
  1. #!/usr/bin/perl
  2.  
  3. use strict;
  4. use warnings;
  5.  
  6. use LWP::Simple;
  7.  
  8. my $url = 'https://www.esrl.noaa.gov/psd/cgi-bin/data/composites/comp.day.pl?var=Sea+Level+Pressure&level=1000mb&iy%5B1%5D=&im%5B1%5D=&id%5B1%5D=&iy%5B2%5D=&im%5B2%5D=&id%5B2%5D=&iy%5B3%5D=&im%5B3%5D=&id%5B3%5D=&iy%5B4%5D=&im%5B4%5D=&id%5B4%5D=&iy%5B5%5D=&im%5B5%5D=&id%5B5%5D=&iy%5B6%5D=&im%5B6%5D=&id%5B6%5D=&iy%5B7%5D=&im%5B7%5D=&id%5B7%5D=&iy%5B8%5D=&im%5B8%5D=&id%5B8%5D=&iy%5B9%5D=&im%5B9%5D=&id%5B9%5D=&iy%5B10%5D=&im%5B10%5D=&id%5B10%5D=&iy%5B11%5D=&im%5B11%5D=&id%5B11%5D=&iy%5B12%5D=&im%5B12%5D=&id%5B12%5D=&iy%5B13%5D=&im%5B13%5D=&id%5B13%5D=&iy%5B14%5D=&im%5B14%5D=&id%5B14%5D=&iy%5B15%5D=&im%5B15%5D=&id%5B15%5D=&iy%5B16%5D=&im%5B16%5D=&id%5B16%5D=&iy%5B17%5D=&im%5B17%5D=&id%5B17%5D=&iy%5B18%5D=&im%5B18%5D=&id%5B18%5D=&iy%5B19%5D=&im%5B19%5D=&id%5B19%5D=&iy%5B20%5D=&im%5B20%5D=&id%5B20%5D=&monr1=5&dayr1=1&monr2=5&dayr2=1&iyr%5B1%5D=2018&filenamein=&plotlabel=&lag=0&labelc=Black+and+White&labels=Contours+%28Black+and+White+Only%29&type=1&scale=&label=1&skip_vector=&cint=&lowr=&highr=&istate=0&proj=Custom&xlat1=-60&xlat2=-10&xlon1=240&xlon2=330&custproj=Cylindrical+Equidistant&level1=1000mb&level2=10mb&Submit=Create+Plot';
  9.  
  10. my $file = 'slp.gif';
  11.  
  12. getstore($url, $file);
  13.  
Coloreado en 0.003 segundos, usando GeSHi 1.0.8.4
lis
Perlero nuevo
Perlero nuevo
 
Mensajes: 106
Registrado: 2008-05-27 21:43 @946

Publicidad

Re: Descargar imágen de sitio web

Notapor explorer » 2018-07-17 18:25 @809

Quizás estés viendo en tu ordenador un archivo llamado slp.gif, pero en realidad no es imagen lo que contiene.

En estos casos, suelo "mirar" el archivo por dentro, a veces con algún editor de textos, o mejor, con algún editor binario, en modo hexadecimal. Los primeros bytes indicará qué tipo de archivo es.

Si estás en Linux/Mac, esto mismo lo puedes hacer con solo ejecutar el comando file.
JF^D Perl programming & Raku programming. Grupo en Telegram: https://t.me/Perl_ES
Avatar de Usuario
explorer
Administrador
Administrador
 
Mensajes: 14476
Registrado: 2005-07-24 18:12 @800
Ubicación: Valladolid, España

Re: Descargar imágen de sitio web

Notapor lis » 2018-07-18 11:53 @537

Hola, es exactamente como dices, explorer. Al ejecutar el comando file en el archivo, en pantalla sale lo siguiente: "slp.gif: HTML document, ASCII text, with very long lines". Así que estoy buscando información al respecto.
lis
Perlero nuevo
Perlero nuevo
 
Mensajes: 106
Registrado: 2008-05-27 21:43 @946

Re: Descargar imágen de sitio web

Notapor explorer » 2018-07-18 21:54 @954

Lo que ha ocurrido es que el servidor no ha podido entregarte la imagen y en su lugar te devuelve una página web.

Si cambias la extensión del archivo a .html, lo podrás ver en el navegador. Es posible que venga algún texto indicando por qué no entregó la imagen.

Otras veces, los servidores están configurados para impedir la descarga de imágenes si no vienen previamente solicitadas desde una página del propio sitio web (en otras palabras, solo permite descargar las imágenes si estaban enlazadas en alguna de sus páginas web).

Para este caso, basta con hacer la petición agregando o modificando el campo Referer de la petición HTTP a un valor que fuera igual a la URL de la página donde está referenciada la imagen.

Otras veces, los servidores no entregan la imagen porque... ya no existe.

Otras veces... están escondidas detrás de un procedimiento JavaScript.

Etcétera.
JF^D Perl programming & Raku programming. Grupo en Telegram: https://t.me/Perl_ES
Avatar de Usuario
explorer
Administrador
Administrador
 
Mensajes: 14476
Registrado: 2005-07-24 18:12 @800
Ubicación: Valladolid, España


Volver a Básico

¿Quién está conectado?

Usuarios navegando por este Foro: No hay usuarios registrados visitando el Foro y 0 invitados