スポンサーリンク
linuxのcliでWEBページを読み込む方法といえばcurlかwgetだと思いますが、javascriptで表示するページは読み込めないのが難点です。
ということで他に何か方法がないか調べてみたのでメモしておきます。
とあるwebページの更新を定期的にチェックする必要が出たため、スクリプトにして定期実行することを考えました。
しかしそのwebページの更新部分はjavascriptで表示されるため、curlやwgetで取得しても表示前のHTMLが取れるだけでした。
何かオプションで解決できないか?とググってみたものの、いい回答は見つからず。。
そんな中、phantomjs というツールを使えばうまくいくという情報を見つけました。
CLIで使えるWEBブラウザ(ヘッドレスブラウザ)の一つです。
特徴としてはjavascriptの処理を実行できることです。
selenium等と組み合わせてwebページのテスト自動化に使われることが多いとのこと。
インフラ: AWS
OS : amazon linux
公式からバイナリファイルが提供されていますので、それをダウンロードして使います。
sudo su -
cd /usr/local/src
wget https://bitbucket.org/ariya/phantomjs/downloads/phantomjs-2.1.1-linux-x86_64.tar.bz2
tar jxf phantomjs-2.1.1-linux-x86_64.tar.bz2
cd phantomjs-2.1.1-linux-x86_64/bin/
ln -s /usr/local/src/phantomjs-2.1.1-linux-x86_64/bin/phantomjs /usr/bin/phantomjs
ここまで完了したら、以下コマンドを実行します
## ↓パス再読込
su -
phantomjs --version
以下のようなレスポンスが返ってくればインストール完了です。
2.1.1
以下のようなファイルを作成します。
//get.js
var page = require('webpage').create();
var url = '取得対象のURL'
page.open(url, function(status) {
if(status === "success") {
console.log(page.content);
}
phantom.exit();
});
これを実行すると取得できます。
phantomjs get.js
以上となります。
最近のクラウドサービスはWEBアプリ的な感じで提供される場合がほとんどなので、
こういう技術を知っていれば検証にも役立ちそうです。
スポンサーリンク