私はプログラムでperlを使ってWebページのスクリーンショットを撮ることに興味があります。私はacrossこのソリューション来ている:グラフィカルインターフェイスなしでウェブページのスクリーンショットを撮ることは可能ですか?
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のジェシー、Apache2の、Perlの5.20)に起因する、またはことが示唆されましたMozReplはインスタントではありませんalledまたは正しく構成されていません。
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).
タイトルを尋ねるように、上記のコードの作業がある場合にすることができますグラフィカルインターフェイスはありませんか?はいの場合、この問題をデバッグして解決するにはどうすればよいですか?
PhantomJSのようなヘッドレスブラウザが必要です。私はWWW :: Mechanize :: PhantomJS(https://metacpan.org/pod/WWW::Mechanize::PhantomJS)を推薦していませんでした。なぜなら、実際には維持されていなかったからです。しかし、著者は2つ今年は2年の休みを経てリリースされます。私が試したとき、スクリーンショットをレンダリングするバグがありました。私はパッチを提出しましたが、しばらくしても応答がないまま、Perlを削除して、単純なPhantomJSを使用しなければなりませんでした。 – ThisSuitIsBlackNot