PhantomJS でWebを巡る

こんにちは!

グローバルソリューション事業部のcharleszです。

前回の投稿では、PhantomJS についてご紹介しました。

 

今回は第2回目ということで、PhantomJS でWebコンテンツの内容を取得する方法を簡単にご紹介します。

 

 

PhantomJSのAPIオブジェクト

 

PhantomJS をコントロールするためには、APIオブジェクトを用います。

 

APIオブジェクト 説明 引用方法
child_process このオブジェクトでチャイルドプロセスを起動して、
stdin/stdout/stderrでお互いに通信することができます。用途は印刷、メール送信または他の言語で作ったプログラムの起動です。

 
fs ファイルシステムの機能を提供します。
 
phantom PhantomJS自身です。JavaScriptのオブジェクトツリーにWindowオブジェクトの下に追加しました。 特に引用する必要はありません。スクリプトを中止する際、下記のコマンドを実行します。

※ exitメッソドには返却値のパラメータを渡すこともできます。
system コマンドライン、OS、環境変数などのシステム情報を提供するオブジェクトです。
webpage ウェブページを操るオブジェクトです。
 
webserver 試験的な機能です。内蔵Webサーバ(Mongoose)を起動します(このWebサーバは汎用Webサーバではありません)。同時に最大10個の接続制限をかけます。
 

 

Webページオブジェクト

 

Webから内容を取得するためには、Webページオブジェクトを使う必要があります。

さて、簡単なサンプルから紹介しましょう。

 

Webサーバにアクセス

ここでは、サンプルとして弊社のコーポレートサイトの内容を、Webサーバからダウンロードしてみます。

 

sample.001.access_clara.raw.js

 

コマンドラインで下記のコマンドを実行します。

 

すると、以下のように出力されます。

何だか目が回りますね。。
実は、これがWebサーバからダウンロードしたままのページ内容です。前回紹介した、DOM解析をする前の内容です。
後ほどこの内容で実際の画面内容を作成します。

 

Webページのテキスト内容を見る

しかし、この内容を見てもWebページの内容は分かりません。
では、少しスクリプトの内容を修正して、出力のフォーマットを変えてみましょう。

 

sample.002.access_clara.text.js

 

コマンドラインで、PhantomJS を実行します。

 

すると、下記のように出力が行われました。

これで、多少は画面の様子が見えてきましたね。

 

Webページのスナップショット

Webページの本来の姿を見たいなら、スナップショットを取る必要があります。
では、続けてやってみましょう。

 

sample.003.access_clara.snap.js

 

 

ここでまた、PhantomJS を実行します。

 

すると、下記のように出力が行われます。

 

 

www.clara.co.jp.jpg の内容を確認しますと、、

 

Clara corporate snapshot

スナップショット作成に成功しました!

 

今回はここまでです!

 

次回は、PhantomJS でWebコンテンツの内容を取得する方法について、続けて紹介します。
お楽しみに!

 

Share on LinkedIn
LINEで送る
Pocket

claraer

claraer