デフォルトでは、PhantomJSの仮想画面サイズは400x300です。
var page = require('webpage').create();
console.log(page.viewportSize.width);
console.log(page.viewportSize.height);
ことをメモを取り、代わりにあなたがあなたのデスクトップのブラウザでご覧ください通常版の彼らはHTMLのモバイル、取り除いたバージョンを提示のサイトがあります。とCSS。
page.viewportSize = { width: 1280, height: 800 };
スニッフィングのUserAgentとそれに基づいて決定を下すないサイトもあります。しかし、我々は必要なビューポートのサイズを設定することで修正することができていることあなたのブラウザがわからない場合は、モバイル版を安全な場所に表示することができます。または、盗難されたくない場合は、PhantomJSへの接続を拒否することができます。
console.log(page.settings.userAgent);
のMozilla/5.0(Windows NTの6.1; WOW64)のAppleWebKit/538.1(KHTML、ヤモリなど)PhantomJS/2.1.1サファリ/ 538.1
しかし、我々は必要なユーザーエージェントを設定することができます
page.settings.userAgent = 'Mozilla/5.0 (Windows NT 6.1; WOW64; rv:32.0) Gecko/20100101 Firefox/32.0';
を
このような脆弱なものやWebのスクレイピングを扱う場合、実際にはエラーが発生した場合にシステムメッセージを通知する必要があります。
だから、何PhantomJSスクリプトは、onErrorメソッドとonConsoleMessageコールバックなしであってはならない:
page.onError = function (msg, trace) {
var msgStack = ['ERROR: ' + msg];
if (trace && trace.length) {
msgStack.push('TRACE:');
trace.forEach(function(t) {
msgStack.push(' -> ' + t.file + ': ' + t.line + (t.function ? ' (in function "' + t.function +'")' : ''));
});
}
console.log(msgStack.join('\n'));
};
page.onConsoleMessage = function (msg) {
console.log(msg);
};
デバッグPhantomJSスクリプトのもう一つの重要な技術は、スクリーンショットを作っています。 PhantomJSは、あなたがChromeで見るものを見ていますか?
page.render("google.com.png");
前に設定するユーザエージェント:
Firefoxのユーザエージェント
を設定した後