30

像 PHP 中的 DOMDocument 类一样,RUBY 中是否有任何类(即核心 RUBY)来解析和获取 HTML 文档中的节点元素值。

4

4 回答 4

46

目前还没有内置的 HTML 解析器,但有一些非常好的解析器可用,尤其是Nokogiri

Meta-answer:对于此类常见需求,我建议您查看Ruby Toolbox站点。您会注意到 Nokogiri 是HTML 解析器的首选

于 2010-03-31T17:16:47.980 回答
9

你应该看看hpricot。它非常好。它不是“核心”红宝石,但它是一种常用的宝石。

于 2010-03-31T17:04:45.217 回答
5

你也可以试试Yorick Peterse的 Oga。

它是一个用 Ruby 编写的 XML/HTML 解析器,不需要 libxml 等系统库。你可以在这里找到它。https://github.com/YorickPeterse/oga

于 2015-08-06T14:04:05.900 回答
3

Ruby Cheerio - Ruby 中的 jQuery 样式 HTML 解析器. 用于爬虫的 Nokogiri 的最简化版本。这是最流行的 NodeJS 包Cheerio的 ruby​​ 版本。

按照链接获取一个简单的爬虫示例。

宝石安装 ruby​​-cheerio

require 'ruby-cheerio'

jQuery = RubyCheerio.new("<html><body><h1 class='one'>h1_1</h1><h1>h1_2</h1></body></html>")

jQuery.find('h1').each do |head_one|
    p head_one.text
end

# getting attribute values like jQuery.
p jQuery.find('h1.one')[0].prop('h1','class')

# function chaining similar to jQuery.
p jQuery.find('body').find('h1').first.text
于 2017-02-08T16:42:21.797 回答