perl を使用してプログラムで Web ページのスクリーンショットを撮ることに興味があります。私はこの解決策に出くわしました:
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.stackoverflow.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 行 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).
タイトルが尋ねるように、グラフィカル インターフェイスがない場合、上記のコードは機能しますか? はいの場合、この問題をデバッグして解決するにはどうすればよいですか?