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

pdfplumber的extract_text提取表格内容,如何仅提取表格外文本

pdfplumber分离提取表格外文本和表格内容的方案

核心实现逻辑是先识别页面所有表格的坐标范围,裁剪排除这些区域后再提取文本,就能避免文本提取结果混入表格内容。

实现代码

import pdfplumber

with pdfplumber.open("目标文件.pdf") as pdf:
    for page in pdf.pages:
        # 第一步:单独提取所有表格内容
        tables = page.extract_tables()
        # 此处可添加你处理表格数据的逻辑
        
        # 第二步:获取所有表格的坐标边界
        table_bboxes = [table.bbox for table in page.find_tables()]
        
        # 第三步:裁剪页面排除所有表格区域
        non_table_page = page
        for bbox in table_bboxes:
            # invert=True表示保留裁剪框外的区域,即排除表格范围
            non_table_page = non_table_page.crop(bbox, relative=False, invert=True)
        
        # 第四步:提取表格外的纯文本
        non_table_text = non_table_page.extract_text()
        # 此处可添加你处理非表格文本的逻辑

注意事项

  • 若运行时提示crop方法不支持invert参数,先升级pdfplumber到最新版本:pip install --upgrade pdfplumber
  • 若存在表格识别误差,可以调整find_tables()的table_settings参数优化识别精度,常用配置包括修改vertical_strategy、horizontal_strategy调整横竖线识别规则,避免非表格内容被误判为表格
  • 提取到的非表格文本如果存在大量多余空行,可以用non_table_text.strip()配合正则替换多余换行符做简单清洗

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.01 19:24:04