【发布时间】:2011-02-03 00:54:04
【问题描述】:
像 PHP 中的 DOMDocument 类一样,RUBY 中是否有任何类(即核心 RUBY)来解析和获取 HTML 文档中的节点元素值。
【问题讨论】:
标签: ruby html-parser
像 PHP 中的 DOMDocument 类一样,RUBY 中是否有任何类(即核心 RUBY)来解析和获取 HTML 文档中的节点元素值。
【问题讨论】:
标签: ruby html-parser
目前还没有内置的 HTML 解析器,但有一些非常好的解析器可用,尤其是 Nokogiri。
Meta-answer:对于此类常见需求,我建议您查看Ruby Toolbox 网站。你会注意到 Nokogiri 是HTML parsers 的首选
【讨论】:
您应该查看hpricot。它非常好。它不是“核心”红宝石,而是一种常用的宝石。
【讨论】:
您也可以试试 Yorick Peterse 的 Oga。
它是一个用 Ruby 编写的 XML/HTML 解析器,不需要 libxml 等系统库。你可以在这里找到它。 https://github.com/YorickPeterse/oga
【讨论】:
Ruby Cheerio - Ruby 中的 jQuery 样式 HTML 解析器。用于爬虫的 Nokogiri 的最简化版本。这是最受欢迎的 NodeJS 包 cheerio 的 ruby 版本。
Follow the link for a simple crawler example.
gem 安装 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
【讨论】: