PhantomJSはWebページを読み込み操作することができるので、様々なページの自動化をおこなうことができます。
Webブラウザ上で実行されているかのようにスクリプトが実行されるので、標準のDOM scriptingとCSS selectorsは問題なく動作します。
以下のuseragent.js
の例では、 id がmyagent
である要素のinnerText
プロパティの読み込みを示しています:
var page = require('webpage').create();
console.log('The default user agent is ' + page.settings.userAgent);
page.settings.userAgent = 'SpecialAgent';
page.open('http://www.httpuseragent.org', function (status) {
if (status !== 'success') {
console.log('Unable to access network');
} else {
var ua = page.evaluate(function () {
return document.getElementById('myagent').innerText;
});
console.log(ua);
}
phantom.exit();
});
上記の例では、リモートWebサーバーによって認識されるユーザーエージェントをカスタマイズする方法も示しています。
バージョン1.6から、次のようにpage.includeJsを使用することで、ページにjQueryをインクルードすることができます:
var page = require('webpage').create();
page.open('http://www.sample.com', function() {
page.includeJs("http://ajax.googleapis.com/ajax/libs/jquery/1.6.1/jquery.min.js", function() {
page.evaluate(function() {
$("button").click();
});
phantom.exit()
});
});
上記のスニペットはWebページを開き、ページにjQueryライブラリをインクルードした後、jQueryを使用してすべてのボタンをクリックします。そしてWebページを終了します。page.includeJs内にexit文を入れているか、またはjavascriptのコードが含まれる前に、途中で終了する可能性があることを確認してください。