Ruby中解析HTML文档的方法?

wgx48brx  于 2023-05-17  发布在  Ruby
关注(0)|答案(5)|浏览(143)

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

gkn4icbw

gkn4icbw1#

目前还没有内置的HTML解析器,但有一些非常好的解析器,特别是Nokogiri
元答案:对于像这样的常见需求,我建议查看Ruby Toolbox站点。您会注意到Nokogiri是HTML parsers的首选推荐

xbp102n0

xbp102n02#

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

tzxcd3kk

tzxcd3kk3#

Ruby Cheerio -Ruby中的jQuery风格HTML解析器。Nokogiri的最简化版本。这是最流行的NodeJS包cheerio的ruby版本。
Follow the link for a simple crawler example.

gem install 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
wz8daaqr

wz8daaqr4#

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

eagi6jfj

eagi6jfj5#

很多人会建议Nokogiri,但你也可以看看Nokolexbor
如果您想要高性能的HTML解析和节点搜索,它是Nokogiri的直接替代品。

相关问题