ボールを蹴りたいシステムエンジニア

ボール蹴りが大好きなシステムエンジニア、ボールを蹴る時間確保の為に時間がある時には勉強する。

PhontomJsでCookieを登録してアクセス

PhontomJsでCookieを登録してアクセスする。

環境

Windows10
cygwin
phantomjs-2.1.1

プログラム

phantomjsのカレントディレクトリに移動してexamplesディレクトリにプログラム作成。

$ cd /cygdrive/c/phantomjs-2.1.1/
$ vi examples/cookie_test.js  

処理部分抜粋

Cookieを登録
※expiresを指定するとCookie登録できなかったので削除した。

ar login1 = {
    'name': 'Login.Test',
    'value'    : 'Cookie-Value',  
    'domain'   : 'hogehoge.com',   
    'path': '/'
}
//登録できたか確認用
if (phantom.addCookie(login1)) {
    console.log('Cookie_login1 success')
} else {
    console.log('Cookie Fail')
}

Cookieを確認

        var cookies = page.cookies;
        for (var i=1 ; i < cookies.length; i++){
            console.log ( cookies[i].domain + " "
                             + cookies[i].path + " "
                             + cookies[i].name + " "
                             + cookies[i].value) ;
        }

参考
http://phantomjs.org/api/webpage/method/add-cookie.html

phantomjs公式サイトだと以下のようになっているが、
expiresを指定するとCookie登録されないんだけど何故かは不明。

phantom.addCookie({
  'name'     : 'Valid-Cookie-Name',   /* required property */
  'value'    : 'Valid-Cookie-Value',  /* required property */
  'domain'   : 'localhost',
  'path'     : '/foo',                /* required property */
  'httponly' : true,
  'secure'   : false,
  'expires'  : (new Date()).getTime() + (1000 * 60 * 60)   /* <-- expires in 1 hour */
});

ちなみに、phantomJs実行時のオプションで

--cookies-file=/path/to/cookies.txt

のようにCookieファイルを指定するオプションがあるが、
このオプションは登録するCookieのファイルでは無くて、
Cookieを保存する為のオプションぽいので要注意。