RaspberryPiにPhantomJSをインストールする
昔作ったPhantomJSのプログラムをRaspberryPiでも実行したいと思ったのですが、RaspberryPiのパッケージがなく、 ビルドにも数時間かかるということだったので諦めていました。そろそろ時間もできたのでインストールすることにしました。
ネットを探すと既にビルドしているものを公開している方がいらっしゃったので、そちらを使うことにしました。 自分でビルドするつもりでしたが、さすがに5時間とかかかると言われると厳しいです。
以下のサイトを参考にさせていただきました。ビルドしたバイナリも公開していただいているので大変ありがたいです。(バージョンは2.1.1なので新しいです!)
他にも
こちらのサイトもあるんですが、少しバージョンが古かったので前者にしています。
インストールする
ビルドされたバイナリは以下にありますのでgit
を使って取得します。
ビルド時に必要なパッケージも事前にインストールしていますが念のためということで。
$ sudo apt-get install build-essential g++ flex bison gperf ruby perl libsqlite3-dev libfontconfig1-dev libicu-dev libfreetype6 libssl-dev libpng-dev libjpeg-dev $ git clone https://github.com/mecrazy/phantomjs-binaries.git $ chmod 755 phantomjs-2.1.1-linux-armhf $ sudo apt-get install fonts-ipafont $ sudo ln -sf `pwd`/bin/phantomjs-2.1.1-linux-armhf /usr/local/bin/phantomjs
cloneしたディレクトリにあるbin
ディレクトリにバイナリがあります。phantomjs
もあります(多分x86なバイナリのリンク?)が、今回使用するのはarm版のphantomjs-2.1.1-linux-armhf
になります。これを/usr/local/bin/
シンボリックリンクを作成します。これで準備完了です。
以下のようにコマンドを実行するとバージョン出ます。これでOKです。
$ phantomjs --version
2.1.1
サンプルっぽいものを実行してみる
PhantomJSはWebkitベースのHeadlessブラウザなので、googleのトップページにアクセスしてスクリーンキャプチャをしてみます。
//sample.js var page = require('webpage').create(); page.open('https://google.com', function(status) { console.log("Status: " + status); if(status === "success") { //screen capture page.render('google.png'); } phantom.exit(); });
実行すると、画面上にURLアクセスしたステータスを表示して終了します。
実行ディレクトリにgoogle.png
ができていれば成功です。
$ phantomjs sample.js Status: success $ ls google.png sample.js
google.png
は以下のような画像になります。(フォントをインストールしてないと文字化けしますので注意です。)
簡単な説明
ソースの一行目でブラウザオブジェクトを作成し
var page = require('webpage').create(); // オブジェクト生成
指定されたURL(https://google.com)にアクセスし、アクセスに成功したら画面イメージをキャプチャします。
page.open('https://google.com', function(status) { // URLへアクセス console.log("Status: " + status); // 実行のステータスをコンソール上に表示 if(status === "success") { //アクセスに成功したら //screen capture page.render('google.png'); //スクリーンキャプチャする } phantom.exit(); //実行終了 });
説明になってないような気もしますが、サンプルなので…
おわりに
公開されたバイナリがあって圧倒的感謝・・・・!