Как извлечь значимый текст из HTML - PullRequest
6 голосов
/ 19 октября 2010

Я хотел бы проанализировать HTML-страницу и извлечь из нее значимый текст. Кто-нибудь знает хорошие алгоритмы для этого?

Я разрабатываю свои приложения на Rails, но я думаю, что ruby ​​немного медленен в этом, поэтому я думаю, что если для этого существует какая-то хорошая библиотека для c, то это будет уместно.

Спасибо !!

PD: Пожалуйста, не рекомендуется ничего с Java

UPDATE: Я нашел этот текст ссылки

К сожалению, в питоне

Ответы [ 4 ]

6 голосов
/ 19 октября 2010

Используйте Нокогири , что быстро и написано на C, для Ruby.

(Использование regexp для разбора рекурсивных выражений, таких как HTML, является общеизвестно сложным и подверженным ошибкам , и я бы не стал идти по этому пути. Я упоминаю об этом только в ответе, поскольку эта проблема возникает снова и снова .)

С настоящим анализатором, таким как, например, упомянутый выше Nokogiri, вы также получаете дополнительное преимущество, заключающееся в том, что структура и логика HTML-документа сохраняются, и иногда вам действительно нужны эти подсказки.

2 голосов
/ 19 октября 2010

Решения, интегрируемые с Ruby

Внешние решения

0 голосов
/ 19 октября 2010

Вы должны убрать всю часть в квадратных скобках из текста, а затем свернуть пробелы. Теоретически < и > не должно быть в других случаях. Страницы содержат &lt; и &gt; везде вместо них.

Свертывание пробелов: преобразовать все символы табуляции, перевода строки и т. Д. В пробелы, а затем заменить каждую последовательность пробелов в один пробел.

ОБНОВЛЕНИЕ: И вы должны начать после обнаружения тега <body>.

0 голосов
/ 19 октября 2010

Lynx может это сделать. Это открытый исходный код, если вы хотите взглянуть на него.

...