こしごぇ(B)

旧:http://d.hatena.ne.jp/koshigoeb/

JavaScriptにも対応したボットをRubyで書く

CapybaraとPoltergeistとPhantomJSを使えば、割と簡単にできそうな感じがする。

簡単なJavaScriptを実行した結果のHTMLに対して操作できるという所までは確認してますが、これが非同期処理などの複雑なJavaScriptに対してどこまでやりきれるかは未確認です。
また、Rubyで書けるのは良いのですが、実際の処理をPhantomJSが実行するため、Mechanizeを使った場合のようにWebMockなどを使ってテストを簡単に書けるわけではなさそうな所も不安です。

一方、Ghost DriverというPhantomJSをWebDriver APIに対応させるプロジェクトもありますが、PhantomJSのブランチを使う必要があるとかなんだとかで手を出していません。PhantomJSに取り込まれるという噂もあったりなかったり。