【问题标题】:How to extract hyperlinks from office documents using tika如何使用 tika 从 office 文档中提取超链接
【发布时间】:2016-02-12 14:44:37
【问题描述】:

我正在使用 Apache Tika 从包括 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 给你文件的 HTML 版本,而不是你现在的纯文本版本?
  • 这是一种可能的解决方法,但需要额外的后处理来处理/删除 HTML 标签。
  • 您可以向 Tika 索要两次,一次是您从中获取链接的 HTML,一次是您使用的纯文本?否则,是的,如果您想要链接,您需要查看 HTML 中的 a 标签

标签: hyperlink ms-office extract apache-tika


【解决方案1】:

我正在使用 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 来应用。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2022-08-18
    • 2014-07-15
    • 2021-04-26
    • 2015-10-06
    • 1970-01-01
    • 1970-01-01
    • 2016-08-26
    相关资源
    最近更新 更多