использовать плагин tika в nutch

В nutch я реализую плагин, который будет получать содержимое веб-страниц и обрабатывать их особым образом.

Моя основная проблема заключается в том, что я хочу преобразовать веб-страницы в обычный текст, чтобы их можно было обрабатывать, я читал, что инструментарий tika может это сделать.

Итак, я нашел этот код, который использует tika для анализа URL-адресов, я пишу его в методе фильтра

 public ParseResult filter(Content content, ParseResult parseResult, HTMLMetaTags metaTags, DocumentFragment doc) 
  {
 byte[] raw = content.getContent();
 ContentHandler handler = new BodyContentHandler();
 Metadata metadata = new Metadata();
 Parser parser = new AutoDetectParser(); 
 parser.parse(new ByteArrayInputStream(raw), handler, metadata, new ParseContext());
 String plainText = handler.toString(); 
 LOG.info("Mime: " + metadata.get(Metadata.CONTENT_TYPE));
 LOG.info("content: " + handler.toString());

      }

Результатом metadata.get(Metadata.CONTENT_TYPE) является текст/html

но handler.toString() пуст!

Обновление: также я пытаюсь использовать эту строку после метода парсера

 LOG.info ("Status : "+ new ParseStatus().toString());

и я получаю этот результат: Статус: не проанализировано (0,0)


person Haya aziz    schedule 07.02.2012    source источник


Ответы (2)


Начиная с версии 1.1 Nutch включает плагин Tika (см. также NUTCH-766), который должен удовлетворить ваши потребности. Я не знаю, есть ли более подробная документация. Вы можете запросить более подробную информацию в списке рассылки Nutch (или кто-то из SO может заполнить в).

person Jukka Zitting    schedule 07.02.2012
comment
Спасибо, я задал вопрос в списке рассылки, но мне никто не ответил. Есть ли какие-либо полезные ресурсы или снимки кода, которые могут помочь? - person Haya aziz; 26.02.2012

Как сказал Юкка Зиттинг, Tika уже использует заемные средства. В коде, который вы вставили, нет места, где вы установили metadata и ParseStatus для какой-либо конкретной структуры данных. Таким образом, вы не видите ParseStatus соответственно.

person Tejas Patil    schedule 03.04.2012