【问题标题】:how to extract main text from html using Tika如何使用 Tika 从 html 中提取主要文本
【发布时间】:2014-05-14 11:14:04
【问题描述】:

我只想知道如何使用 Tika 从 html 中提取正文和纯文本?

也许一种可能的解决方案是使用 BoilerPipeContentHandler,但您有一些示例/演示代码来展示它吗?

提前非常感谢

【问题讨论】:

    标签: html-parsing apache-tika boilerpipe


    【解决方案1】:

    BodyContentHandler 类不使用 Boilerpipe 代码,因此您必须显式使用 BoilerPipeContentHandler。以下代码对我有用:

    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;
    }
    

    【讨论】:

      【解决方案2】:

      这是一个示例:

      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;
      }
      

      【讨论】:

        猜你喜欢
        • 2015-10-06
        • 2011-10-03
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多