サーバーサイドのスクレイピングで前回行なった
「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
0 件のコメント:
コメントを投稿