Подтвердить что ты не робот

Способ анализа HTML-документа в Ruby?

как класс DOMDocument в PHP, есть ли какой-либо класс в Ruby (т.е. ядро ​​RUBY), для анализа и получения значения элементов node из HTML-документа.

4b9b3361

Ответ 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