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

7

我下载了tika-core和tika-parser库,但是我找不到将HTML文档解析为字符串的示例代码。我必须摆脱网页源代码中的所有HTML标记。我该怎么办?如何使用Apache Tika编写代码?


看一下这个例子,它可能会对你有所帮助:http://blog.jeroenreijn.com/2010/04/metadata-extraction-with-apache-tika.html - Lalchand
2个回答

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
您可以使用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();
    }

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接