サーバーサイドで画面キャプチャ # node.js + webshot

2015年9月19日

Nodejs Tips テクノロジー プログラミング

デバッグ処理などで重要な画面キャプチャをnodejsで取得してみます。

nodejsのインストール

# Debian系 $ sudo apt-get install nodejs # Centos系 $yum install node

バージョン確認

$ node -v v0.10.29 上記の様に返答がない場合、下記のコマンドで実行できる場合がありますが、こういう場合は、標準コマンドのnodeでパスを通して上げる必要があります。 ※こうしておかないと、npmコマンドが正常に実行できなくなります。 $ nodejs -v v0.10.29

nodejsをnodeにシンボリックリンクする

$ ln -s /usr/bin/nodejs /usr/bin/node

npmをインストール

# Debian系 $ apt-get install npm # Centos系 $ yum install npm

phantomjsのwrapperである「webshot」をインストール

# ローカル環境にインストール $ npm install webshot # グローバル環境にインストール $ npm install webshot -g

簡単にキャプチャを取得

var webshot = require('webshot'); webshot('http://google.co.jp', 'google.png', function(err) { // 取得後処理 });

日本語対応

画面キャプチャで文字化けしているのは、nodejsに表示用のフォントが足りていない事が原因なので、インストールしてあげれば問題解決。 # Debian系 $ sudo apt-get install fonts-migmix これだけで無事に日本語表示ができました。

課題

今現在は、画面サイズや、縦スクロールして全てのサイズを取得できないので、こういう場合の対応も必要になります。 また、自動化する場合の重要点としては、取得した画像を日別で取得して、画像の差分をチェックするような処理も必要になりそうです。 とりあえず、次回移行にクロール処理も含めて対応してみたいと思います。

このブログを検索

ごあいさつ

このWebサイトは、独自思考で我が道を行くユゲタの少し尖った思考のTechブログです。 毎日興味がどんどん切り替わるので、テーマはマルチになっています。 もしかしたらアイデアに困っている人の助けになるかもしれません。