###行いたい事
Seleniumでログインが必要なページのスクレイピングを行っているのですが、毎度ログインするのはよろしくないと思い、2回目以降ログインをスキップしたいと考えています。
1度目のログインの際、Cookieを保存し2回目以降はそのcookieを読み込んでアクセスするという方法を利用したいと思います。
###直面している問題
1度目のログインの際に出力されるcookieが複数あり、どれがログイン情報を格納しているかわかりません。
[{:name=>"s_sess", :value=>"", :path=>"/", :domain=>".test.co.jp", :expires=>nil, :secure=>false}, {:name=>"friedrice", :value=>"", :path=>"/", :domain=>".example.co.jp", :expires=>#<DateTime: 2017-01-30T13:58:44+00:00 ((2457784j,50324s,46n),+0s,2299161j)>, :secure=>true}, {:name=>"s_pers", :value=>"", :path=>"/", :domain=>".test.co.jp", :expires=>#<DateTime: 2022-01-28T13:58:41+00:00 ((2459608j,50321s,999999892n),+0s,2299161j)>, :secure=>false}, {:name=>"riceball", :value=>"", :path=>"/", :domain=>"mainmenu.example.co.jp", :expires=>nil, :secure=>true}, {:name=>"shop", :value=>"", :path=>"/", :domain=>".example.co.jp", :expires=>nil, :secure=>true}, {:name=>"sesame", :value=>"", :path=>"/", :domain=>".example.co.jp", :expires=>#<DateTime: 2017-01-30T13:58:40+00:00 ((2457784j,50320s,999999973n),+0s,2299161j)>, :secure=>true}, {:name=>"ginger", :value=>"", :path=>"/", :domain=>".example.co.jp", :expires=>nil, :secure=>true}]
###試している事
1度目のログインの際に出力されるcookieを全て読み込めば上手く行くのでは考え、複数のcookieを読み込んだ状態でアクセスしたいのですが、失敗してしまいます。
get "mainmenu.example.co.jp" $selenium.manage.add_cookie([{:name=>"s_sess", :value=>"", :path=>"/", :domain=>".test.co.jp", :expires=>nil, :secure=>false}, {:name=>"friedrice", :value=>"", :path=>"/", :domain=>".example.co.jp", :expires=>#<DateTime: 2017-01-30T13:58:44+00:00 ((2457784j,50324s,46n),+0s,2299161j)>, :secure=>true}, {:name=>"s_pers", :value=>"", :path=>"/", :domain=>".test.co.jp", :expires=>#<DateTime: 2022-01-28T13:58:41+00:00 ((2459608j,50321s,999999892n),+0s,2299161j)>, :secure=>false}, {:name=>"riceball", :value=>"", :path=>"/", :domain=>"mainmenu.example.co.jp", :expires=>nil, :secure=>true}, {:name=>"shop", :value=>"", :path=>"/", :domain=>".example.co.jp", :expires=>nil, :secure=>true}, {:name=>"sesame", :value=>"", :path=>"/", :domain=>".example.co.jp", :expires=>#<DateTime: 2017-01-30T13:58:40+00:00 ((2457784j,50320s,999999973n),+0s,2299161j)>, :secure=>true}, {:name=>"ginger", :value=>"", :path=>"/", :domain=>".example.co.jp", :expires=>nil, :secure=>true}]) get "mainmenu.example.co.jp/aaaaa.html" screenshot
###質問
ログインをスキップするにはcookieを読み込んでアクセスするという方法事体間違ってないでしょうか?
cookieを複数読み込んだ状態でアクセスするには、どのように変更すればよいでしょうか?
###備考
環境
Ruby
Selenium
PhantomJS
クライアント
アクセス先はIDとPWを入力する部分が2つあります。
あなたの回答
tips
プレビュー