PhantomJS を CentOSにインストールする3つの方法

ヘッドレスブラウザ(Headless Browser)PhantomJS 2.1 を CentOS 6.8 にインストールしたときの備忘となります。

※この記事はWEBエンジニア向けとなります。この備忘は2017年1月時点でのものとなるため、ソフトウェアのアップデートにより変更される場合があります。自己責任・自己解決でお願いします。

ヘッドレスブラウザとは?

ヘッドレスブラウザ(Headless Browser)とはグラフィカルユーザインタフェース(GUI)を持たないブラウザの総称です。Chrome / Safari / Microsoft Edge / Internet Explorer といった通常のブラウザは人間が目で見て操作しますが、ヘッドレスブラウザは PHP / Python / Ruby / JavaScript / Java といったようなコンピュータ言語により操作します。処理の自動化や開発時のテスト等に使われます。

下記URLに世界中の Headless Browser を網羅した一覧があります。
https://github.com/dhamaniasad/HeadlessBrowsers

今回は「サーバ上でWEBページのスクリーンショット(キャプチャー)を自動取得する」必要があり、PhantomJS を CentOS 6.8 にインストールしてみました。途中うまくインストールされないこともあったので備忘として残しておきます。

PhantomJS を CentOSにインストールする3つの方法

Vagrant で CentOS6.8 のローカル環境を作り、PhantomJS 公式サイトのビルド手順に沿って進めたところ、色々とエラーが出てインストールできませんでした。公式の手順でインストールできるならそれに越したことはないのですが、他にも手軽にインストールできる方法があるので、そちらで進めてみました。公式の手順でインストールできない場合にお試しください。

yum のみによるインストール

CentOS6にyumでphantomjs 2.1.1をインストールにある通りです。コマンドを打つだけなので yum が使える環境では、この方法が最も簡単かと思います。

下記では sudo を省略しています。コマンドの実行権限がないとアラートが出る場合には sudo yum のように sudo をつけて実行してください。

yum と npm でインストール

サーバーにphantomjsをおいてスクレイピングを動かしたい時にある通り、npm(Node Packaged Modules)で PhantomJS をインストールするこもできるようです。yum のみによるインストールがうまくいく場合には、あえてこの方法にしなくても良いのかなといったところですが…。

コマンド以外にパスを通す作業が必要になります。また環境によってはパーミッション・エラーがでることもあり、パーミッション変更が必要になることもあります。

バイナリ インストール

バイナリをダウンロードしてインストールする方法です。CentOS6 だけでなく Ubuntu でもインストールできます。

以上、PhantomJS を CentOSにインストールする3つの方法でした。

おまけ 〜 日本語への対応 – フォントをインストール

PhantomJS 2.1 をインストールして、いざウェブページのスクリーンショット(キャプチャー)を自動取得してみると、文字列がまったくない状態(画像は表示される)になりました。

Python スクリプト側の問題かと思いましたが一向に解消せず…。PHP で組んで見ても解消せす…困ってあれこれしていたら、日本語サイト固有の問題ということがわかってきました。どうも日本語対応のフォントがOSにインストールされていないことが原因だったようで、下記コマンドで日本語フォントをインストールすれば解消しました。