最好的Rails HTML解析器

时间:2008-12-27 18:34:54

标签: html ruby parsing

我知道Hpricot仍然是一个标准,但我记得听说过更快,更具表现力的Ruby解析器。

有人知道它叫什么,是否值得从Hpricot转换?

提前致谢

4 个答案:

答案 0 :(得分:11)

您可能正在考虑Nokogiri。 我自己没有用过它,但“每个人”都在谈论它,benchmarks看起来很有趣:

hpricot:html:doc  48.930000 3.640000 52.570000 ( 52.900035)
hpricot2:html:doc  4.500000 0.020000  4.520000 (  4.518984)
nokogiri:html:doc  3.640000 0.130000  3.770000 (  3.770642)

答案 1 :(得分:5)

有多种工具可供选择。我使用Nokogiri

演示:

require 'rubygems'
require 'nokogiri'

doc = Nokogiri::HTML(%{
  <h1 class="title">Hello, World</h1>
  <p>Some text</p>
  <a href="http://www.google.com/">Some link</a>
})

title   = doc.at_css("h1.title").text
content = doc.at_css("p").text
url     = doc.at_css("a")[:href]

Ryan Bates做了一个关于使用它的精彩截屏:#190: Screen Scraping with Nokogiri

文档http://nokogiri.org/

教程http://nokogiri.org/tutorials

答案 2 :(得分:2)

还有Rubyful Soup

它将自己作为轻量级快速和脏的解析器出售。我发现界面非常直观,并且在过去将它用于项目时会出现“Ruby-ish”,考虑到它是一个Python端口,这可能有点令人惊讶。

编辑:看起来它不再被遗忘,所以它可能不是你想要的那个。看起来像Nokogiri是你听说过的。

答案 3 :(得分:1)

不要使用正则表达式 - ruby​​的正则表达式太慢了。 Hpricot很棒,Nokogiri看起来很有希望,但我还没有直接使用它。