Разбор HTML-данных с помощью NUTCH 1.0 и пользовательского плагина - PullRequest
3 голосов
/ 29 апреля 2009

Я сейчас пытаюсь написать собственный плагин для NUTCH 1.0. Этот плагин должен анализировать HTML-данные и отфильтровывать соответствующую информацию из документов. У меня работает базовый плагин, он расширяет объект HtmlParserResult и выполняется каждый раз, когда я выполняю анализ.

На данный момент у меня две проблемы:

  1. Я не достаточно хорошо понимаю рабочий процесс / трубопровод для разбора гайки. Я не нахожу информацию об этом на сайте NUTCH.

  2. Я не понимаю, как выполняется анализ DOM, я вижу, что Nutch имеет набор объектов DOM и что плагин HtmlParser выполняет некоторый анализ DOM, но я пока не понял, как это лучше всего сделать.

1 Ответ

1 голос
/ 26 сентября 2011

Я помню, как создавал плагин для HTML-анализа. У меня нет доступа к тому, как я это сделал, но вот основные моменты. Мы хотели сделать следующее:

  1. синтаксический анализ страницы HTML, но условно использовать тег H1 или тег с определенным классом в качестве заголовка страницы, а не фактический // html / head / title
  2. На странице иногда находились некоторые специальные данные (т. Е. Какая вкладка была выбрана, которая сообщала бы нам, был ли это розничный клиент, клиент банка или корпоративный клиент).
  3. и т.д.

Что я сделал, так это просто нашел класс плагина html-parse (у меня проблемы с поиском действительного имени класса) и расширил его. Затем переопределите функцию синтаксического анализа. Новая функция должна вызвать функцию super, а затем обойти дерево DOM, чтобы найти специальные данные, которые вы ищете. В моем случае я бы искал лучший заголовок и затем переопределил значение, которое придумала функция super.

Что касается вашего второго вопроса, мне не ясно, о чем вы спрашиваете. Я думаю, вы спрашиваете, что происходит, когда DOM не очень хорошо сформирован? Я бы просто покопался в коде NUTCH (http://grepcode.com/snapshot/repo1.maven.org/maven2/org.apache.nutch/nutch/1.3/)) и выяснил, как выполняется синтаксический анализ (я уверен, что они используют библиотеку для этого). Это должно рассказать вам больше о том, жадные ли вещи, или что.

Привет, если у вас есть вопросы.

...