Ruby の WWW::Mechanize のコツが少し分かってきた
ただし WWW::Mechanize 0.8.x + Hpricot 時代のノウハウ。
- オプション一つで取得した HTML とその解析結果のオブジェクトを全ページ保存できるようにしておく
- Logger に吐かれる HTTP のログもひとまとめに扱えるようにしておく
- 保存された情報を穴が開くほどよく見る
- ブラウザではうまくいくけど Mechanize ではダメな場合、HTTP のログはかなり重要なヒントを与えてくれる
以上。
特に mechanize の取得した HTML とその解析結果のオブジェクトを自動で保存しておくようにすると、どこの何の解釈に失敗しているのかを究明するのがだいぶ楽になる。単に Hpricot を使ったときなんかもそうなんだけど、とにかく取得した HTML は即座に保存しておいた方がいいと思う。サーバにも優しいしね。
で、実際これを思ってから2週間後にできあがった、楽できるフレームがこれ。
個人的にはこれ超使える。