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

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


person Harish Kurup    schedule 31.03.2010    source источник


Ответы (4)


Встроенного анализатора HTML (пока) нет, но есть несколько очень хороших, в частности Nokogiri.

Мета-ответ: Для таких общих нужд я бы рекомендовал посетить сайт Ruby Toolbox. Вы заметите, что Nokogiri является главной рекомендацией для парсеров HTML.

person Marc-André Lafortune    schedule 31.03.2010

Вы должны проверить hpricot. Это чрезвычайно хорошо. Это не «основной» рубин, а широко используемый драгоценный камень.

person Peter    schedule 31.03.2010
comment
Hpricot, к сожалению, больше нет. Теперь Nokogiri является предпочтительным решением. - person superluminary; 14.10.2013

Вы также можете попробовать Oga Йорика Петерса.

Это синтаксический анализатор XML/HTML, написанный на Ruby, который не требует системных библиотек, таких как libxml. Вы можете найти это здесь. https://github.com/YorickPeterse/oga

person microspino    schedule 06.08.2015

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
person dineshsprabu    schedule 08.02.2017
comment
Очень хороший подход! Хорошая рекомендация! Спасибо @dineshsprabu. - person Fernando Kosh; 18.04.2017
comment
Спасибо, Фернандо Кош. - person dineshsprabu; 19.04.2017