Возьмите изображение с URL.asp и сохранить его

StackOverflow https://stackoverflow.com/questions/7814827

  •  26-10-2019
  •  | 
  •  

Вопрос

Я пытаюсь схватить изображение, расположенное здесь И сохраняйте его на моем сервере несколько раз в день, как будто я «щелкните правой кнопкой мыши» на изображении и сохраняю его на моем рабочем столе. Я решил использовать сценарий Perl для этого, вот что я написал до сих пор:

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;

После запуска через SSH я получаю эту ошибку: Не могу вызовать метод «regexp» на неопределенном значении в строке 2

У кого-нибудь есть идеи, что не так с этой строкой "$ pic-> regexp ('.*. Png');" Или как получить и сохранить это изображение (index_chart_api.png) от упомянутого URL -адреса на одном сервере?

Цените любую помощь с этим.

Это было полезно?

Решение

Обратите внимание, что данный URL показывает изображение PNG в моем браузере, что означает, что нет HTML для поиска изображения. В принципе, тогда должен работать следующий сценарий:

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

Я использовал аналогичный сценарий для производства Норвежское солнце в Балтийском море - 6 дней за 5 минут.

Другие советы

Вы не инициировали объект, поэтому он не определен.

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

или похожа:

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;
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top