Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/360.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Tika-从文档中检索主要内容_Java_Apache Tika - Fatal编程技术网

Java Tika-从文档中检索主要内容

Java Tika-从文档中检索主要内容,java,apache-tika,Java,Apache Tika,ApacheTika的GUI实用程序提供了一个选项,用于获取给定文档或URL的主要内容(格式文本和结构化文本除外)。我只想知道哪个方法负责提取docs/url的主要内容。这样我就可以在我的程序中加入这个方法。以及他们在从HTML页面提取数据时是否使用了任何启发式算法。因为有时候在提取的内容中,我看不到广告 更新:我发现是BoilerPipeContentHandler造成的。我相信这是由的驱动,它只获取文档正文的HTML内容。如果需要,还可以将其与其他处理程序组合,以仅返回正文的纯文本。Tika

ApacheTika的GUI实用程序提供了一个选项,用于获取给定文档或URL的主要内容(格式文本和结构化文本除外)。我只想知道哪个方法负责提取docs/url的主要内容。这样我就可以在我的程序中加入这个方法。以及他们在从HTML页面提取数据时是否使用了任何启发式算法。因为有时候在提取的内容中,我看不到广告


更新:我发现是BoilerPipeContentHandler造成的。

我相信这是由的驱动,它只获取文档正文的HTML内容。如果需要,还可以将其与其他处理程序组合,以仅返回正文的纯文本。

Tika GUI中的“主要内容”功能是使用依赖的类实现的,用于重载。

它在所有单元测试中都有效。。。我建议你看看它是如何用在这些方面的,并将其与你的use@Gagravarr“主要内容”是纯文本和精简的样板文件(试着用Tika gui进行实验,看看它是什么)。它只适用于HTML页面还是所有页面。因为从Boilerpipe文档中,我可以看到它主要只支持HTML页面。您还可以告诉我如何控制Tika输出中的空格和换行符。因为tika的输出包含更多的空格和换行符,所以在下面的问题中,我们使用boilerpipe提供了一个解决方案。
public String[] tika_autoParser() {
    String[] result = new String[3];
    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);
        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;
}