Edited at

[Ruby]Mechanizeでログイン機能があるサイトにログインする

More than 3 years have passed since last update.


概要

webサイトとのインタラクションを自動化してくれるgem「Mechanize」を使って、ログイン機能があるサイトにログインし、ログイン後のページをNokogiriでスクレイピングした時のメモ


環境

Ruby 2.2.2


参考


Mechanizeを使ってログインしていく


1.必要なgemのインストール


cmd

gem install nokogiri

gem install mechanize


2.Mechanizeを利用してログイン、Nokogiriを利用してスクレイピング


ruby

require 'nokogiri'

require 'mechanize'

agent = Mechanize.new
agent.user_agent_alias = 'Mac Safari 4'
agent.get('ログインページのURL') do |page|

mypage = page.form_with(name: 'ログインフォームのname属性') do |form|
# ログインに必要な入力項目を設定していく
# formオブジェクトが持っている変数名は入力項目(inputタグ)のname属性
form.loginid = 'ログインID'
form.pwasswd = 'パスワード'
end.submit

doc = Nokogiri::HTML(mypage.content.toutf8)
h1_text = doc.xpath('//h1').text
end