Извлечение текста из URL с использованием TIKA - PullRequest
7 голосов
/ 12 июля 2011

Можно ли извлечь текст из URL с помощью Tika?Любые ссылки будут оценены.Или TIKA можно использовать только для PDF, Word и любых других документов СМИ?

Ответы [ 4 ]

7 голосов
/ 12 июля 2011

Проверьте документацию - да, вы можете.

Пример

java -jar tika-app-0.9.jar -t /6557671/izvlechenie-teksta-iz-url-s-ispolzovaniem-tika

покажет вам текст на этой странице.

6 голосов
/ 23 августа 2011

Это от lucid :

InputStream input = new FileInputStream(new File(resourceLocation));
ContentHandler textHandler = new BodyContentHandler();
Metadata metadata = new Metadata();
PDFParser parser = new PDFParser();
parser.parse(input, textHandler, metadata);
input.close();
out.println("Title: " + metadata.get("title"));
out.println("Author: " + metadata.get("Author"));
out.println("content: " + textHandler.toString());

Вместо создания PDFParser вы можете использовать AutoDetectParser Тики для автоматической обработки различных типов файлов:

Parser parser = new AutoDetectParser();
3 голосов
/ 26 марта 2012

Да, вы можете сделать это.Вот кодЭтот код использует apache http client

HttpGet httpget = new HttpGet("http://url.here"); 
    HttpEntity entity = null;
    HttpClient client = new DefaultHttpClient();
    HttpResponse response = client.execute(httpget);
    entity = response.getEntity();
    if (entity != null) {
        InputStream instream = entity.getContent();
        BodyContentHandler handler = new BodyContentHandler();
        Metadata metadata = new Metadata();
        Parser parser = new AutoDetectParser();
        parser.parse( instream, handler, metadata, new ParseContext());
        String plainText = handler.toString();
        FileWriter writer = new FileWriter( "/scratch/cache/output.txt");
        writer.write( plainText );
        writer.close();
        System.out.println( "done");
    }
1 голос
/ 14 февраля 2012

для извлечения контента из URL, а не из локального файла, используйте этот код:

    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());
    LOG.info("content: " + handler.toString());
...