Grab immagine from.asp url e salvandolo
-
26-10-2019 - |
Domanda
sto cercando di afferrare l'immagine situata qui e salvarlo in mio assistente paio di volte al giorno, proprio come se io 'tasto destro del mouse' sulla immagine e salvarla sul mio desktop. Ho deciso di usare script perl per fare questo, ecco quello che ho scritto finora:
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;
Dopo l'esecuzione tramite ssh ricevo questo errore: Impossibile chiamare il metodo "espressione regolare" su un valore indefinito alla linea 2
Qualcuno ha idea di cosa è sbagliato con questa linea "$ pic> regexp ( '* png..');" o il modo di afferrare e salvare questa immagine (index_chart_api.png) da url menzionata su quelli del server correttamente?
Apprezzo tutto l'aiuto con questo.
Soluzione
Si noti che l'URL ha dato mostra l'immagine PNG nel mio browser significa che non c'è HTML per cercare l'immagine. In linea di principio, quindi, il seguente script dovrebbe funzionare:
#!/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";
}
ho usato uno script simile per la produzione di Norwegian Sun nel Mar Baltico - 6 giorni in 5 minuti .
Altri suggerimenti
Non hai init l'oggetto, è per questo che non è definito.
use Image::Grab;
$pic = new Image::Grab;
$pic->regexp('.*\.png');
o cose simili:
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;