いまさらながらPhantomJSを使ってみる

PhantomJSはヘッドレス(CUI)ブラウザで有名だったが、各種主要ブラウザがヘッドレスモードをサポートするようになり存在意義が薄れてしまいついには開発が中断されてしまっている。
中断されてしまっているが、あえて使ってみたいと思った。

インストール

2018/09/18現在最新のアーカイブである2.1.1を対象にする。

Windows

$url = "https://bitbucket.org/ariya/phantomjs/downloads/phantomjs-2.1.1-windows.zip";
$zip = Split-Path -Path $url -Leaf;
$app = $zip -replace '\.zip$'

# Download
Invoke-WebRequest -Uri $url -OutFile $zip | Out-Null;

# Unarchive and move
Expand-Archive -Path $zip -DestinationPath 'C:\';

# Add to PATH (temporary)
$path = "C:\{0}" -F $app;
$Env:PATH = $path + ";" + $Env:PATH;

Linux

_url="https://bitbucket.org/ariya/phantomjs/downloads/phantomjs-2.1.1-linux-x86_64.tar.bz2"
_bz2=$(basename ${_url})
_tar=$(echo "${_bz2//.bz2/}")
_app=$(echo "${_tar//.tar/}")

# Download
wget -O ${_bz2} "${_url}"

# Unarchive
bunzip2 ${_bz2}
tar xf ${_tar}

# Add to PATH (temporary)
_path=$(cd ${_app}/bin; pwd)
export PATH="${_path}${PATH:+:}${PATH}

ページをキャプチャ

QuickStartページにサンプルがあるが、ほぼそのままで画面キャプチャをしてみる。

var page = require('webpage').create();
page.open('http://icicleforest.wp.xdomain.jp/', function(status) {
  console.log("Status: " + status);
  setTimeout(function() {
    if(status === "success") {
      page.render('phantomjs_capture_01.png');
    }
    phantom.exit();
  }, 5000);
});

キャプチャ画像がこれ。

感想

お手軽にWebページの自動操作・キャプチャ保存ができるのは便利。
ただ、公式ページにも書いてあるがブラウザの機能として一部制限があるため、これらを使わないと割り切ることが大事。

  • Flashのようなプラグインを必要とするもの
  • WebGL
  • Video & Audio
  • CSS 3D
  • XPath(未テスト)

なるほど、やはり完全を求めるならGoogleChromeやFirefoxのヘッドレスモードになってしまうのね。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です