Watirで診断メーカー巡り

Watirを使って延々と診断メーカーするだけの簡単なスクリプトを書いた。
入力フォームに入力されるのが妙に遅いのが気になるのと、Ctrl+Cしても異常終了しないようにSignal.trapしてるけど効いていない気がする。

#!/usr/bin/env ruby
# coding: utf-8

require "firewatir"

b = Watir::Browser.new
username = "ohnishiakira"

Signal.trap("INT") { b.close }

while true
  b.goto("shindanmaker.com/" + (rand * 100000).to_i.to_s)
  
  next if "エラー" == b.title.force_encoding("utf-8")
  
  b.text_field(:class, "shindanuser").set(username)
  b.button(:type, "submit").click
  
  puts "[#{b.title}]#{b.div(:class, "result").text} #{b.url}"
  
  sleep 3
end

Watirを使ってみて

  • 普段は手でちまちま入力しているものが自動で入力されていくのを見るのはちょっと面白い。遅いけど。
  • 工夫すれば、延々と自分が興味のありそうなページ(はてなブックマークの特定のタグとか)だけを巡回するものも普通に出来そう。
  • 原因がよく分からないけど、自分の環境(Ubuntu10.04 + gnome-terminal + ruby1.9.2)でirb上でWatirを動かしていると、ターミナルがアクティブになっていてもCtrl+Cした時にブラウザが終了してしまう。
  • HTMLの解析がしたいなら普通にmechanizeなりhpricotなり使った方がいい。