Rubyではてなメッセージ一覧を取得するスクリプトを書いてみた。フォーム情報の取得、送信にはMechanizeを使ってる。
require 'rubygems' require 'mechanize' username = 'hoge' password = 'password' class HatenaMessage def initialize() @agent = WWW::Mechanize.new end def login(username, password) page = @agent.get('https://www.hatena.ne.jp/login') form = page.forms[0] form['name'] = username form['password'] = password form.submit end def get_message() page = @agent.get('http://m.hatena.ne.jp/') body = page.body from_list = Array.new title_list = Array.new timestamp_list = Array.new body.scan(/<td class="from" nowrap><img.*?>(.*?)<\/td>/){|from| from_list << from[0] } body.scan(/<a href="\/tree\?\d+" class="message-title">(.*?)\n/){|title| title_list << title[0] } body.scan(/<td class="timestamp">(.*?)<\/td>/){|timestamp| timestamp_list << timestamp[0] } message_list = Array.new(from_list.size()); for i in 0..message_list.size() - 1 message_list[i] = Message.new(from_list[i], title_list[i], timestamp_list[i]) end return message_list end class Message attr_reader :from attr_reader :title attr_reader :timestamp def initialize(from, title, timestamp) @from = from @title = title @timestamp = timestamp end end end message = HatenaMessage.new message.login(username, password) message.get_message().each{|message| puts message.from puts message.title puts message.timestamp puts }