You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Docling提取PDF超链接异常:仅获显示文本,无法捕获完整URL求助

Docling提取PDF超链接问题的解决办法

一、尝试修复Docling的超链接解析问题

  • 升级到Docling最新版本:旧版本可能存在超链接检测的逻辑漏洞,新版本大概率会修复这类问题。
  • 检查解析配置:查看Docling的PdfParser初始化参数,是否有开启超链接提取的选项(比如extract_hyperlinks=True),默认可能未启用。
  • 参考官方Issue:去Docling的代码仓库搜索同类问题,可能有其他用户分享的临时补丁或自定义解析逻辑,比如修改解析器中检测超链接的部分,让TextItem的hyperlink属性能正确赋值。

二、替代库推荐(支持提取完整URL+显示文本)

如果Docling暂时无法解决,以下几个库能稳定实现需求:

  • PyMuPDF(fitz):轻量高效,超链接提取逻辑成熟。示例代码:
import fitz

doc = fitz.open("target.pdf")
for page in doc:
    # 获取页面所有链接
    links = page.get_links()
    for link in links:
        if link["kind"] == fitz.LINK_URI:
            # 通过链接的 bounding box 获取对应显示文本
            display_text = page.get_textbox(link["from"])
            print(f"显示文本: {display_text.strip()}, URL: {link['uri']}")
  • pdfplumber:基于PDFMiner,能精准关联文本与链接的位置。示例代码:
import pdfplumber

with pdfplumber.open("target.pdf") as pdf:
    for page in pdf.pages:
        for link in page.hyperlinks:
            # 通过链接的边界框提取对应文本
            display_text = page.within_bbox(link["bbox"]).extract_text().strip()
            print(f"显示文本: {display_text}, URL: {link['uri']}")
  • PDFMiner.six:底层解析库,灵活性高,适合需要定制化处理的场景,但需要自行处理文本与链接的匹配逻辑。

三、混合方案(保留Docling文本提取能力)

如果不想更换主库,可以用PyMuPDF或pdfplumber先提取所有链接的坐标和URL,再结合Docling提取的文本块坐标进行匹配,关联显示文本与对应的URL。这种方法适合结构简单的PDF文档。

内容的提问来源于stack exchange,提问作者Akshata

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.12 10:32:34