использовать тика в Nutch плагин - PullRequest
0 голосов
/ 07 февраля 2012

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

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

Итак, я нашел этот код, который использует тика для анализа 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) является text / html

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

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

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

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

Ответы [ 2 ]

1 голос
/ 07 февраля 2012

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

0 голосов
/ 03 апреля 2012

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

...