Можно ли сделать скриншот веб-страницы без графического интерфейса?
У меня есть интерес, чтобы программно сделать скриншот веб-страницы с помощью Perl. Я сталкивался с этим решением:
use WWW::Mechanize::Firefox;
use Path::Class qw/file/;
my $mech = WWW::Mechanize::Firefox->new(
bufsize => 10_000_000, # PNGs might become huge
);
$mech->get('http://www.stackru.com/');
my $fh = file( 'test.png' )->open( '> :raw' );
print $fh $mech->content_as_png();
но когда я пытаюсь запустить этот код, я получаю:
Не удалось подключиться, проблема с подключением к "localhost", порт 4242: Соединение отклонено по адресу /usr/local/share/perl/5.20.2/MozRepl/Client.pm line 144
Предполагалось, что этот сбой вызван закрытым портом (Debian Jessie, Apache2, Perl 5.20) или MozRepl, который не установлен или настроен неправильно.
Сервер Debian является только командной строкой, в противном случае нет графического интерфейса. Когда я бегу cpan WWW::Mechanize::Firefox
Я получаю в конце:
CPAN: Storable loaded ok (v2.49_01)
Reading '/root/.cpan/Metadata'
Database was generated on Fri, 22 Jul 2016 17:53:33 GMT
CPAN: Module::CoreList loaded ok (v5.20150214)
WWW::Mechanize::Firefox is up to date (0.79).
И когда я бегу cpan MozRepl
Я получаю в конце:
CPAN: Storable loaded ok (v2.49_01)
Reading '/root/.cpan/Metadata'
Database was generated on Fri, 22 Jul 2016 17:53:33 GMT
CPAN: Module::CoreList loaded ok (v5.20150214)
MozRepl is up to date (0.06).
Так как заголовок спрашивает, может ли вышеуказанный код работать, если нет графического интерфейса? Если да, что я могу сделать, чтобы отладить и решить эту проблему?
1 ответ
2 решения:
Xvfb для создания безголового X-сервера и запуска на нем экземпляра firefox
Используйте Phantom, и это хороший учебник: http://blogs.perl.org/users/robhammond/2013/02/web-scraping-with-perl-phantomjs.html