2006.08.27
Hpricot
HpricotというRuby用のHTMLパーサに注目していたのですが、 最近ちょうど使いたい場面があったので使ってみました。 まず、Hpricotはスキャン部分がC言語で書かれていて、類似のHTreeより高速だということですので両者を比べてみました。
require 'benchmark'
require 'open-uri'
require 'rubygems'
require 'hpricot'
require 'htree'
str = open('http://www.ruby-lang.org/en/').read
n = 100
Benchmark.bm {|x|
x.report {n.times {HTree(str)}}
x.report {n.times {Hpricot(str)}}
}
結果は次のようになり、たしかにHpricot(下の段)の方がかなり高速なようです。
user system total real 11.773438 0.671875 12.445312 ( 13.631620) 4.750000 0.359375 5.109375 ( 5.644100)
使い方等についてはwikiのHTMLパーサ Hpricotにまとめました。 使い勝手もかなり良く、おすすめです。
