как класс DOMDocument в PHP, есть ли какой-либо класс в RUBY (т.е. основной RUBY) для анализа и получения значения элементов узла из документа HTML.
Способ анализа HTML-документа в Ruby?
Ответы (4)
Встроенного анализатора HTML (пока) нет, но есть несколько очень хороших, в частности Nokogiri.
Мета-ответ: Для таких общих нужд я бы рекомендовал посетить сайт Ruby Toolbox. Вы заметите, что Nokogiri является главной рекомендацией для парсеров HTML.
Вы должны проверить hpricot. Это чрезвычайно хорошо. Это не «основной» рубин, а широко используемый драгоценный камень.
Вы также можете попробовать Oga Йорика Петерса.
Это синтаксический анализатор XML/HTML, написанный на Ruby, который не требует системных библиотек, таких как libxml. Вы можете найти это здесь. https://github.com/YorickPeterse/oga
Ruby Cheerio — синтаксический анализатор HTML в стиле jQuery на ruby. Самая упрощенная версия Nokogiri для сканеров. Это рубиновая версия самого популярного пакета NodeJS cheerio.
Перейдите по ссылке, чтобы увидеть пример простого сканера.
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