2011-07-11 17 views

Respuesta

5

Esto es de 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()); 

lugar de crear una PDFParser se puede utilizar de Tika AutoDetectParser para procesar automáticamente los tipos de diff de archivos:

Parser parser = new AutoDetectParser(); 
6

Compruebe documentation - sí se puede.

Ejemplo

java -jar tika-app-0.9.jar -t http://stackoverflow.com/questions/6656849/extract-the-text-from-url-using-tika 

le mostrará el texto en esta página.

+0

Y si tengo que usar esto en un código Java y guardar el texto de la dirección URL en un archivo de texto .. Entonces también es posible .. ?? Y no estoy usando maven. Quiero usar esto en código Java. – ferhan

+1

la descripción de cómo usar tika con hormiga está justo debajo de la descripción de cómo usarlo con Maven, y justo encima de las instrucciones para la herramienta de línea de comando. Si necesita algo de inspiración sobre cómo incrustarlo, estoy seguro de que hay información en el sitio web, y siempre existe la fuente de la herramienta de línea de comandos también. – fvu

+0

esto sería un buen ejemplo en la documentación ... – topchef

1

para extraer el contenido de URL no de archivos local utilice este código:

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()); 
+0

También puede usar TikaInputStream.get (byte []) para compilar InputStream – Gagravarr

+0

Gracias ,, No sé por qué me está dando cadena vacía en handler.toString() !!! –

3

Sí, puedes hacer eso. Aquí está el código. Este código utiliza 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"); 
    } 
Cuestiones relacionadas