Я помню, как создавал плагин для HTML-анализа. У меня нет доступа к тому, как я это сделал, но вот основные моменты. Мы хотели сделать следующее:
- синтаксический анализ страницы HTML, но условно использовать тег H1 или тег с определенным классом в качестве заголовка страницы, а не фактический // html / head / title
- На странице иногда находились некоторые специальные данные (т. Е. Какая вкладка была выбрана, которая сообщала бы нам, был ли это розничный клиент, клиент банка или корпоративный клиент).
- и т.д.
Что я сделал, так это просто нашел класс плагина html-parse (у меня проблемы с поиском действительного имени класса) и расширил его. Затем переопределите функцию синтаксического анализа. Новая функция должна вызвать функцию super
, а затем обойти дерево DOM, чтобы найти специальные данные, которые вы ищете. В моем случае я бы искал лучший заголовок и затем переопределил значение, которое придумала функция super
.
Что касается вашего второго вопроса, мне не ясно, о чем вы спрашиваете. Я думаю, вы спрашиваете, что происходит, когда DOM не очень хорошо сформирован? Я бы просто покопался в коде NUTCH (http://grepcode.com/snapshot/repo1.maven.org/maven2/org.apache.nutch/nutch/1.3/)) и выяснил, как выполняется синтаксический анализ (я уверен, что они используют библиотеку для этого). Это должно рассказать вам больше о том, жадные ли вещи, или что.
Привет, если у вас есть вопросы.