Pregunta

Estoy tratando de tomar la imagen ubicada aquí Y guárdelo en mi servidor pocas veces al día, como si "haga clic con el botón derecho" en la imagen y lo guardo en mi escritorio. He decidido usar el script Perl para hacer esto, esto es lo que escribí hasta ahora:

use Image::Grab;
 $pic->regexp('.*\.png');
 $pic->search_url('http://www.reuters.wallst.com/enhancements/chartapi/index_chart_api.asp?symbol=.SPX&headerType=quote&width=316&height=106&duration=3');
 $pic->grab;
open(IMAGE, ">index_chart_api.png") || die"index_chart_api.png: $!";
 binmode IMAGE;  # for MSDOS derivations.
 print IMAGE $pic->image;
 close IMAGE;

Después de ejecutarlo a través de SSH recibo este error: No puedo llamar al método "regexp" en un valor indefinido en la línea 2

Cualquiera tiene idea de lo que está mal con esta línea "$ pic-> regexp ('.*. Png');" ¿O cómo agarrar y guardar esta imagen (index_chart_api.png) del servidor de URL mencionado en el servidor correctamente?

Aprecio cualquier ayuda con esto.

¿Fue útil?

Solución

Tenga en cuenta que la URL dada muestra la imagen PNG en mi navegador, lo que significa que no hay HTML para buscar la imagen. En principio, entonces, el siguiente script debería funcionar:

#!/usr/bin/env perl

use warnings; use strict;
use LWP::Simple qw(getstore is_error);

my $img_url = 'http://www.reuters.wallst.com/enhancements/chartapi/index_chart_api.asp?symbol=.SPX&headerType=quote&width=316&height=106&duration=3';

my $ret = getstore($img_url, 'test.png');

if (is_error($ret)) {
    die "Error: $ret\n";
}

Usé un script similar para producir Sol noruego en el Mar Báltico - 6 días en 5 minutos.

Otros consejos

No has iniciado el objeto, por eso está indefinido.

use Image::Grab;
$pic = new Image::Grab;
$pic->regexp('.*\.png');

o algo similar:

use Image::Grab;

$pic = Image::Grab->new(
            SEARCH_URL => '',
            REGEXP     => '.*\.png');
$pic->grab;
open(IMAGE, ">image.jpg") || die "image.jpg: $!";
binmode IMAGE;  
print IMAGE $pic->image;
close IMAGE;
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top