如何使用Java中的Apache Tika HTML解析器来提取所有HTML标记?

时间:2011-03-25 07:47:10

标签: java html apache apache-tika

我下载了tika-core和tika-parser库,但我找不到将HTML文档解析为字符串的示例代码。我必须摆脱网页源的所有html标签。我能做什么?如何使用Apache Tika进行编码?

2 个答案:

答案 0 :(得分:20)

您想要html文件的纯文本版本吗?如果是这样,您只需要:

        InputStream input = new FileInputStream("myfile.html");
        ContentHandler handler = new BodyContentHandler();
        Metadata metadata = new Metadata();
        new HtmlParser().parse(input, handler, metadata, new ParseContext());
        String plainText = handler.toString();

BodyContentHandler在没有构造函数参数或字符限制的情况下创建时,将捕获html正文的文本(仅)并将其返回给您。

答案 1 :(得分:1)

您还可以使用Tika AutoDetectParser来解析任何类型的文件,例如HTML。    这是一个简单的例子:

    try {
        InputStream input = new FileInputStream(new File(path));
        ContentHandler textHandler = new BodyContentHandler();
        Metadata metadata = new Metadata();
        AutoDetectParser parser = new AutoDetectParser();
        ParseContext context = new ParseContext();
        parser.parse(input, textHandler, metadata, context);
        System.out.println("Title: " + metadata.get(metadata.TITLE));
        System.out.println("Body: " + textHandler.toString());
    } catch (FileNotFoundException e) {
        e.printStackTrace();
    } catch (IOException e) {
        e.printStackTrace();
    } catch (SAXException e) {
        e.printStackTrace();
    } catch (TikaException e) {
        e.printStackTrace();
    }