サーバーサイドで画面キャプチャ その2 #PhantomJs

2015年10月7日

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

サーバーサイドのスクレイピングで前回行なった「node+webshot」の他に、「PhantomJs」がどうやら便利そうという話を聞いたので、検証がてら、設置してみることにした。

PhantomJsのwebサイト

http://phantomjs.org/

PhantomJsのインストール

サーバーサイドで行いたいので、Linuxを対象とする。 ※macの場合はbrewでインストールできると思うが今回は対象外です。 # debian系 $ apt-get install phantomjs # centos系 $ yum install phantomjs # 上記でインストール出来ない場合の直接設定(2015.10.3現在)※最新バージョンで行なってください $ wget https://phantomjs.googlecode.com/files/phantomjs-1.9.0-linux-x86_64.tar.bz2 $ tar jxfv phantomjs-1.9.0-linux-x86_64.tar.bz2 $ ln phantomjs-1.9.0-linux-x86_64/bin/phantomjs /usr/bin/ # Debianでのインストール手順 $ wget http://ftp.us.debian.org/debian/pool/main/p/phantomjs/phantomjs_1.9.0-1+b1_i386.deb $ dpkg -i phantomjs_1.9.0-1+b1_i386.deb $ cp /usr/bin/phantomjs /usr/local/bin/ # 確認 $ phantomjs -v > 1.9.0

プログラム

var url = "http://www.yahoo.co.jp/"; var page = require('webpage').create(); page.open(url, function(status) { console.log(status); page.render("yahoo.png"); phantom.exit(); });

実行

$ phantomjs yahoo.js > success デフォルトでページの全体が取得されていて「nodejs + webshot」よりは精度はいい感じです。

注意点

事前にフォントインストールしていないと文字化けをするので、下記コマンドで行なってください。 # centosの場合 $ yum install fonts-migmix

このブログを検索

ごあいさつ

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