mechanizeの使い方

よく忘れるので。


まずrequire。

require 'mechanize'

アメブロにログインしてエントリーを自動で登録する場合

agent = WWW::Mechanize.new
diary_page = agent.get("http://blog.ameba.jp/ucs/entry/srventryinsertinput.do")

ログイン処理。
フィールドは名前を指定しても取れるらしいんだけど、
うまく取れなかったので、firstを使って取得する。

login_form = diary_page.forms.first
login_form.fields[0].value = "acount"
login_form.fields[1].value = "password"
redirect_page = agent.submit(login_form)


値セット。
フィールドを1つずつ見て、名前で判別する。

#textarea
text_form = redirect_page.forms.first
text_form.fields.each do |field|
  if field.name == "entry_title"
    field.value = blog_title
  elsif field.name == "entry_text"
    field.value = blog_body
  elsif field.name == "publish_flg"
    #アメブロ固有の処理
    field.value = "0"
  end
end

#アメブロ固有の処理
text_form.action = "/ucs/entry/srventryinsertend1.do"


サブミット

text_form.submit