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.

È stato utile?

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;
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top