Frage

Ich versuche das Bild zu greifen hier Und speichern Sie es einige Male pro Tag auf meinem Server, als ob ich mit der rechten Maustaste auf das Bild "klicke" und es auf meinem Desktop speichern würde. Ich habe beschlossen, das Perl -Skript zu verwenden, um dies zu tun. Folgendes habe ich bisher geschrieben:

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;

Nachdem ich es über SSH ausgeführt habe, erhalte ich diesen Fehler: Die Methode kann "regexp" nicht auf einem undefinierten Wert in Zeile 2 aufrufen

Jeder hat eine Idee, was mit dieser Zeile "$ pic-> regexp ('.*. Png') falsch ist;"; Oder wie ich dieses Bild (index_chart_api.png) aus der genannten URL auf einem Server ordnungsgemäß greifen und speichern kann?

Schätzen Sie jede Hilfe dabei.

War es hilfreich?

Lösung

Beachten Sie, dass die angegebene URL das PNG -Bild in meinem Browser zeigt, was bedeutet, dass kein HTML nach dem Bild gesucht wird. Im Prinzip sollte das folgende Skript also funktionieren:

#!/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";
}

Ich habe ein ähnliches Skript verwendet, um zu produzieren Norwegische Sonne in der Ostsee - 6 Tage in 5 Minuten.

Andere Tipps

Sie haben das Objekt nicht initiert, deshalb ist es undefiniert.

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

oder ähnliche Sache:

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;
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top