читать некоторые переменные из каталога - чтобы разобрать их с помощью mechanize - PullRequest
0 голосов
/ 07 декабря 2011

У меня есть список из 2500 веб-сайтов, и мне нужно сделать их скриншот. Как я могу это сделать? Я мог бы попытаться разобрать сайты либо с помощью Perl Mechanize - например, вот так.

  use WWW::Mechanize::Firefox;
  my $mech = WWW::Mechanize::Firefox->new();
  $mech->get('http://google.com');

  my $png = $mech->content_as_png();

Как мне сделать это для всех разных URL? Как я могу прочитать их из файла? Другими словами, я храню URL-адреса в файле. А потом я выложил результаты в другой каталог.

Из документов:

Возвращает данную вкладку или текущую страницу, отображаемую как изображение PNG. Все параметры не являются обязательными. $ tab по умолчанию соответствует текущей вкладке. Если даны координаты, этот прямоугольник будет вырезан. Координаты должен быть хеш с четырьмя обычными записями, слева, сверху, ширина, высота. Это характерно для WWW :: Mechanize :: Firefox.

Ответы [ 2 ]

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

Мне кажется, я понимаю ... вы хотите, чтобы список из 2500 URL-адресов, по одному в каждой строке, сохранялся в файле. Затем вы хотите, чтобы ваш скрипт выше открыл файл, прочитал строку, а затем восстановил сайт? Если так, то примерно так:

    Filename: urls.txt
    ------------------
    www.google.com
    www.cnn.com
    www.msnbc.com
    news.bbc.co.uk
    www.bing.com
    www.yahoo.com

Тогда код:

    use WWW::Mechanize::Firefox;
    my $mech = WWW::Mechanize::Firefox->new();

    open(INPUT, "urls.txt") or die "Can't open file: $!";

    while (<INPUT>) {
      chomp;
      $mech->get($_);
      my $png = $mech->content_as_png();
    }
    close(INPUT);
    exit;
1 голос
/ 07 декабря 2011

Предполагая, что ваш список находится в файле с именем list.txt:

open( my $fh, '<', 'list.txt') or die "Could not open list.txt: $!";
foreach my $url ( <$fh> ) {
    chomp $url;
    # Do your mechanize thing here using $url
}
close $fh;

По сути, откройте файл, затем выполните цикл по всем строкам в файле.

...