PhantomJSでCookieが動作しない
PhantomJSをDockerで構築し、試しにスクリプトをスクリプトを動かしてみたのですが、Receiveで受け取ったSet-CookieをRequestのヘッダーにセットしてくれないようで、困っています。
Dockerは、下記を使用しています。
https://hub.docker.com/r/cmfatih/phantomjs/
試したスクリプトは、下記です。
'use strict';
var page = require('webpage').create();
page.onConsoleMessage = function(msg) {
console.log(msg);
};
page.onResourceRequested = function(request) {
console.log('Request ' + JSON.stringify(request, undefined, 4));
};
page.onResourceReceived = function(response) {
console.log('Receive ' + JSON.stringify(response, undefined, 4));
};
page.open("https://www.google.co.jp/search?q=phantomjs", function(status) {
setTimeout(function () {
console.log('Page Cookie =====================================\n' + JSON.stringify(page.cookies, undefined, 4));
page.open("https://www.google.co.jp/search?q=phantomjs",function(status) {
setTimeout(function () {
console.log('Phantom Cookie =====================================\n' + JSON.stringify(phantom.cookies, undefined, 4));
phantom.exit();
}, 3000);
});
}, 3000);
});
結果は、こんな感じでHeadersにCookieはセットされていません。
Request {
"headers": [
{
"name": "User-Agent",
"value": "Mozilla/5.0 (Unknown; Linux x86_64) AppleWebKit/534.34 (KHTML, like Gecko) PhantomJS/1.9.8 Safari/534.34"
},
{
"name": "Accept",
"value": "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8"
}
],
"id": 8,
"method": "GET",
"time": "2016-06-02T02:53:19.135Z",
"url": "https://www.google.co.jp/search?q=phantomjs"
}