【问题标题】:How can I use the HTML parser with Apache Tika in Java to extract all HTML tags?如何在 Java 中使用带有 Apache Tika 的 HTML 解析器来提取所有 HTML 标签?
【发布时间】:2011-07-22 17:40:59
【问题描述】:

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

【问题讨论】:

标签: java html apache apache-tika


【解决方案1】:

您想要纯文本版本的 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 正文的文本并将其返回给您。

【讨论】:

    【解决方案2】:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-12-06
      相关资源
      最近更新 更多