Я знаю, что Hpricot по-прежнему является стандартом, но я помню, как слышал о более быстром и выразительном парсере HTML для Ruby.
Кто-нибудь знает, как это называется и стоит ли переходить с Hpricot ??
заранее спасибо






Вы, наверное, думаете о Нокогири. Сам я им не пользовался, но "все" об этом говорят, и ориентиры действительно выглядит интересно:
hpricot:html:doc 48.930000 3.640000 52.570000 ( 52.900035)
hpricot2:html:doc 4.500000 0.020000 4.520000 ( 4.518984)
nokogiri:html:doc 3.640000 0.130000 3.770000 ( 3.770642)
Еще одна приятная особенность Nokogiri заключается в том, что он был построен с учетом Hpricot, поэтому синтаксис практически идентичен. Так что переключение не должно иметь для вас большого значения.
Также есть Рубиновый суп
Которая продает себя как легкий, быстрый и грязный парсер. Я нашел интерфейс очень интуитивно понятным и «рубиновым», когда использовал его для проекта в прошлом, что, возможно, немного удивительно, учитывая, что это порт Python.
Обновлено: похоже, что, к сожалению, он больше не поддерживается, поэтому, вероятно, это не тот, который вы искали. Похоже, Нокогири - это то, о чем вы слышали.
Не используйте регулярные выражения - регулярные выражения Ruby работают слишком медленно. Hpricot - это круто, а Nokogiri выглядит многообещающе, хотя я еще не использовал его напрямую.
Доступно несколько инструментов. Я использую Нокогири.
Демо:
require 'rubygems'
require 'nokogiri'
doc = Nokogiri::HTML(%{
<h1 class = "title">Hello, World</h1>
<p>Some text</p>
<a href = "http://www.google.com/">Some link</a>
})
title = doc.at_css("h1.title").text
content = doc.at_css("p").text
url = doc.at_css("a")[:href]
Райан Бейтс сделал отличный скринкаст об его использовании: # 190: Очистка экрана с помощью Nokogiri.
Документация: http://nokogiri.org/
Учебники: http://nokogiri.org/tutorials