PhantomJS で HTTP 認証が必要な Web ページを開こうとしています。私のスクリプトは、loadspeed.js の例に基づいています。
var page = require('webpage').create(),
t, address;
page.settings.userName = "user";
page.settings.password = "password";
if (phantom.args.length === 0) {
console.log('Usage: loadspeed.js <some URL>');
phantom.exit();
} else {
t = Date.now();
address = phantom.args[0];
page.open(address, function (status) {
if (status !== 'success') {
console.log('FAIL to load the address');
} else {
t = Date.now() - t;
console.log('Loading time ' + t + ' msec');
page.render('page.jpg');
}
phantom.exit();
});
}
レンダリングされた page.jpg から、毎回 401 を取得していることがわかります。また、Wireshark を使用して HTTP セッションをトレースしたところ、特定の URL への GET 要求で認証ヘッダーが送信されていないことがわかりました。
ここで何が間違っていますか?私は PhantomJS を使い始めたばかりですが、一晩中検索していて、遠くまでは行きませんでした...