как класс DOMDocument в PHP, есть ли какой-либо класс в Ruby (т.е. ядро RUBY), для анализа и получения значения элементов node из HTML-документа.
Способ анализа HTML-документа в Ruby?
Ответ 1
Нет встроенного анализатора HTML (пока), но доступны некоторые очень хорошие, в частности Nokogiri.
Мета-ответ: для таких общих потребностей я бы рекомендовал проверить сайт Ruby Toolbox. Вы заметите, что Nokogiri является верхней рекомендацией для парсеров HTML
Ответ 2
Вы должны проверить hpricot. Это очень хорошо. Это не "сердцевина" рубина, а широко используемый камень.
Ответ 3
Вы также можете попробовать Oga от Yorick Peterse.
Это парсер XML/HTML, написанный на Ruby, который не требует системных библиотек, таких как libxml. Вы можете найти это здесь. https://github.com/YorickPeterse/oga
Ответ 4
Ruby Cheerio - парсер JavaScript в стиле jQuery в рубине. Самая упрощенная версия 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