Greifen Sie im Bild von.asp URL und speichern Sie es
-
26-10-2019 - |
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.
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;