Rubyからはてなの日記を更新するスクリプト


こちらの素晴らしい記事を参考に自分も日記を更新してみようとやってみました。


■ [ruby] RubyでHTMLとWebを操作するためのライブラリ、HpricotとWWW::Mechanize
http://mono.kmc.gr.jp/~yhara/d/?date=20070205


そのままコピペしてたら

edit_form["body"] += "\n*Rubyから日記を更新してみるテスト。

の部分で
undefined method `[]' for nil:NilClass (NoMethodError)
ってエラーがでて動かなかったんだけど、修正したら動いたのでメモ。

(3) ユーザー名とパスワードを入力し、「ログイン」を押す

login_form = login_page.forms.first
login_form['key'] = "(ユーザ名)"
login_form['password'] = "(パスワード)"
redirect_page = agent.submit(login_form)

login_page.formsでformタグの一覧が取得できます。ログインページにはformが一つしかないので、firstで最初のformを選んでいます。

次の行では、<input name="key" ...> というインプットボックスにユーザ名を入力しています。 パスワードも同様に入力します。

agent.submitにこのフォームを渡すとフォームの内容が送信され、送信結果のページが返ってきます。

ここの部分ですが、
今のはてなのインプットボックスは「name」になってるようです。
なので以下のように修正。

login_form['key'] → login_form['name']

すると動くようになりました。



便利。