2014-05-14 19 views
5

Po prostu chcę wiedzieć, w jaki sposób mogę wyodrębnić tekst główny i zwykły tekst z html przy użyciu Tika?jak wyodrębnić tekst główny z html przy użyciu Tika

Może jednym z możliwych rozwiązań jest użycie BoilerPipeContentHandler, ale czy masz kilka przykładowych/demonstracyjnych kodów, aby to pokazać?

Dzięki bardzo z góry

Odpowiedz

1

Oto przykład:

public String[] tika_autoParser() { 
    String[] result = new String[3]; 
    try { 
     InputStream input = new FileInputStream(new File("/Users/nazanin/Books/Web crawler.pdf")); 
     ContentHandler textHandler = new BodyContentHandler(); 
     Metadata metadata = new Metadata(); 
     AutoDetectParser parser = new AutoDetectParser(); 
     ParseContext context = new ParseContext(); 
     parser.parse(input, textHandler, metadata, context); 
     result[0] = "Title: " + metadata.get(metadata.TITLE); 
     result[1] = "Body: " + textHandler.toString(); 
    } catch (FileNotFoundException e) { 
     e.printStackTrace(); 
    } catch (IOException e) { 
     e.printStackTrace(); 
    } catch (SAXException e) { 
     e.printStackTrace(); 
    } catch (TikaException e) { 
     e.printStackTrace(); 
    } 

    return result; 
} 
4

Klasa BodyContentHandler nie używa kodu Boilerpipe, więc trzeba jawnie użyć BoilerPipeContentHandler. Poniższy kod pracował dla mnie:

public String[] tika_autoParser() { 
    String[] result = new String[3]; 
    try { 
     InputStream input = new FileInputStream(new File("test.html")); 
     ContentHandler textHandler = new BodyContentHandler(); 
     Metadata metadata = new Metadata(); 
     AutoDetectParser parser = new AutoDetectParser(); 
     ParseContext context = new ParseContext(); 
     parser.parse(input, new BoilerpipeContentHandler(textHandler), metadata, context); 
     result[0] = "Title: " + metadata.get(metadata.TITLE); 
     result[1] = "Body: " + textHandler.toString(); 
    } catch (FileNotFoundException e) { 
     e.printStackTrace(); 
    } catch (IOException e) { 
     e.printStackTrace(); 
    } catch (SAXException e) { 
     e.printStackTrace(); 
    } catch (TikaException e) { 
     e.printStackTrace(); 
    } 

    return result; 
} 
Powiązane problemy