Página 1 de 1

Descargar imágen de sitio web

NotaPublicado: 2018-07-17 16:09 @714
por lis
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.002 segundos, usando GeSHi 1.0.8.4

Re: Descargar imágen de sitio web

NotaPublicado: 2018-07-17 18:25 @809
por explorer
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.

Re: Descargar imágen de sitio web

NotaPublicado: 2018-07-18 11:53 @537
por lis
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.

Re: Descargar imágen de sitio web

NotaPublicado: 2018-07-18 21:54 @954
por explorer
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.