如何使用tika从office文档中提取超链接

时间:2015-11-11 13:37:43

标签: hyperlink ms-office extract apache-tika

我使用Apache Tika从包括办公室在内的各种文档格式中提取原始文本。

从包含超链接的word文档中提取文本时,只会提取文本,并且有关超链接的信息会丢失。

有没有办法配置解析器,以便还提取底层链接?

    ParseContext context = new ParseContext();
    Detector detector = new DefaultDetector();
    Parser parser = new AutoDetectParser(detector);
    context.set(Parser.class, parser);
    Metadata metadata = new Metadata();

    try (TikaInputStream input = TikaInputStream.get(new File(fileName))) {

        BodyContentHandler handler = new BodyContentHandler();
        parser.parse(input, handler, metadata, context);

        String rawText = handler.toString();

        input.close();
    }

1 个答案:

答案 0 :(得分:0)

我正在使用tika-app从bash中的办公文档中提取超链接。我正在使用--html选项输出文件的HTML内容。然后,我使用sed和grep过滤HTML,使其仅过滤该HTML中href属性的内容。我得到的结果是每个href的内容,每行一个。

java -jar /root/tika-app-1.20.jar --html TEST.docx 2>/dev/null | sed 's/href/\nhref/g' | grep '^href' | sed 's/href="//' | sed 's/".*//'

我知道OP并未使用tika-app,但是通用方法也可以使用Java中的Tika来应用。

相关问题