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

Hyperlink 如何使用tika从office文档中提取超链接,hyperlink,ms-office,extract,apache-tika,Hyperlink,Ms Office,Extract,Apache Tika,我使用ApacheTika从各种文档格式(包括office)中提取原始文本 从包含超链接的word文档中提取文本时,只提取文本,有关超链接的信息将丢失 是否有一种方法可以配置解析器,以便也提取底层链接 ParseContext context = new ParseContext(); Detector detector = new DefaultDetector(); Parser parser = new AutoDetectParser(detector);

我使用ApacheTika从各种文档格式(包括office)中提取原始文本

从包含超链接的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();
    }

我正在使用tika应用程序从bash中的office文档中提取超链接。我使用--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应用程序,但一般的方法也可以使用Java中的tika应用。

请tika提供文件的HTML版本,而不是现在的纯文本版本?这是一种可能的解决方法,但需要额外的后处理来处理/删除HTML标记。您可以向tika索要两次,一次是从HTML中获取链接,一次是使用纯文本?否则,是的,如果您想要链接,您需要在HTML中查找
a
标记