Не удалось очистить обработчик режима корзины. Image :: Grab in Perl - PullRequest
0 голосов
/ 29 декабря 2011

Я хочу получить все изображения на веб-странице с помощью этой программы. Но когда я запускал эту программу, я получал одно и то же изображение 10 раз вместо разных. Я думаю, что проблема была в режиме bin или операторе печати "$ pic-> image", который не смог очистить старое содержимое обработчика файла.

#!/usr/bin/Perl
# pics.pl

# Grabs multiple images from a webpage

use Image::Grab;

$pic = new Image::Grab;

# Specify the total no of pages
$totalpages = 1;
$idx2 = 1;
$idx3 = 10;

for($idx = 1; $idx <= $totalpages; $idx++)
{
  $idx4 = 1;
  $pic->regexp(".*\.jpg");
  $pic->search_url("http://www.freedigitalphotos.net/images/Recycling_g385.html");
  for ($idx2 = $idx2; $idx2 <= $idx3; $idx2++)
  {
    $pic->index('$idx4');
    $pic->grab;
    $name = 'image'.$idx2.'.jpg';
    open(IMAGE, ">$name") || die "$name: $!";
    binmode (IMAGE);  
    print IMAGE $pic->image;
    close (IMAGE);
    $idx4++;
  }
  $idx3 = $idx2+10;
}

Спасибо.

1 Ответ

2 голосов
/ 29 декабря 2011

Вы поместили $ idx4 здесь $ pic-> index ('$ idx4'); внутри одинарных кавычек. Также, пожалуйста, используйте строгие & предупреждения прагмы в ваших скриптах, это поможет вам легко отлаживать.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...