【Linux】CLIでJavascriptを実行した結果のWEBページを取得する方法(phantomjs) | 瀬戸内の雲のように

【Linux】CLIでJavascriptを実行した結果のWEBページを取得する方法(phantomjs)

Posted: 2018-11-27


スポンサーリンク

目次

はじめに

linuxのcliでWEBページを読み込む方法といえばcurlかwgetだと思いますが、javascriptで表示するページは読み込めないのが難点です。
ということで他に何か方法がないか調べてみたのでメモしておきます。

 

背景

とあるwebページの更新を定期的にチェックする必要が出たため、スクリプトにして定期実行することを考えました。

しかしそのwebページの更新部分はjavascriptで表示されるため、curlやwgetで取得しても表示前のHTMLが取れるだけでした。

何かオプションで解決できないか?とググってみたものの、いい回答は見つからず。。
そんな中、phantomjs というツールを使えばうまくいくという情報を見つけました。

 

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

 

WEBページを取得する方法

以下のようなファイルを作成します。

//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アプリ的な感じで提供される場合がほとんどなので、
こういう技術を知っていれば検証にも役立ちそうです。


スポンサーリンク




コメント一覧


コメントを投稿する


お名前


コメント内容





TOP back