2016-07-22 10 views
2

私はプログラムで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). 

タイトルを尋ねるように、上記のコードの作業がある場合にすることができますグラフィカルインターフェイスはありませんか?はいの場合、この問題をデバッグして解決するにはどうすればよいですか?

+1

PhantomJSのようなヘッドレスブラウザが必要です。私はWWW :: Mechanize :: PhantomJS(https://metacpan.org/pod/WWW::Mechanize::PhantomJS)を推薦していませんでした。なぜなら、実際には維持されていなかったからです。しかし、著者は2つ今年は2年の休みを経てリリースされます。私が試したとき、スクリーンショットをレンダリングするバグがありました。私はパッチを提出しましたが、しばらくしても応答がないまま、Perlを削除して、単純なPhantomJSを使用しなければなりませんでした。 – ThisSuitIsBlackNot

答えて

2

2ソリューション:

+0

このリンクを使用してPhantomJSをダウンロードしてインストールしました:https://gist.github.com/julionc/7476620正常にインストールされたら、 'WWW :: Mechanize :: PhantomJS'経由でcpan。彼のコメントに@ThisSuitIsBlackが提供していないリンクは、PNGを入手する方法に関する文書を持っています。 – KingsInnerSoul

関連する問題