mechanizeは便利だけれど、 いろいろと不満があって。
元々Mechanizeって、
PerlのWWW::Mechanize
が最初で、
Pythonのmechanize
はPerlのをごっそり移植したのが始まり(最近は結構違ってしまっている)、だと思う。
Rubyのmechanize
は多分Perlの方を中心にパクっているんだと思うが、
さっぱり敬意
経緯が示されていないので、本当のところは知らない。
私はPython版mechanizeしか真面目に使ったことはないのだけれど、 mechanizeの問題点は(どの実装かにもよるけど)、 次のようなものである。
第一の問題は、ただタグを取ってきたいだけなら、 ソースを適当なパーザに放りこめばいいのだけど、 それだと結果がmechanizeにフィードバックできないのが辛い。 ここんところがちゃんとインテグレートされて欲しい。 っつーか、mechanizeの独自APIは覚えることが増えて面倒だから、 なくなってもいい。
第二の問題は、結局この手の作業にPerl/Python/Rubyのような言語で最適化するのは辛いからだと思う。 書きやすく、拡張しやすいのはいいんだけど、 やっぱりエンジンはC辺りで書いててくれたら、もうちょっと軽快な気がする。 一個しか使わないんだったら気にならないレベルなんだけど、 100個ぐらい使おうとすると、かなり痛い。 っつーか、 一個でいいなら、 こういうの でいいんでね?と最近思う。
第三の問題は、昨今のJavaScriptぐりぐりページに対応するのに、 いまさらJavaScript無視なブラウザでは相当な限界があるから、 本当に困る。
それで、 どうせならJavaScriptを初めから意識して作ったmechanizeみたいなのがあったらいいんでない?とか思った。 で、思っていると、 最近の HttpUnit はJavaScriptもサポートしているってことに気づいた。 しかしJavaなんだよな... 他の言語とバインディングが作れれば、別にいいか。 どのぐらいの性能が出て、 どのぐらいJavaScript使いまくりのページに対処できるのか、 一度試してみんといかんな。