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

如何用Python的tabula库提取PDF中的多个表格?单个表格可正常提取

解决Tabula提取PDF中多个表格的问题

你遇到的问题很常见——默认情况下tabula.read_pdf()只会提取PDF里的第一个表格。要获取所有表格,只需要调整几个关键参数就行,下面是具体的解决方案:

核心方法:提取所有页面的所有表格

通过指定pages='all'和multiple_tables=True两个参数,让Tabula遍历PDF的所有页面并识别每个页面中的多个表格,最终返回一个包含所有表格DataFrame的列表。

示例代码:

from tabula import read_pdf

# 提取PDF中所有页面的所有表格
all_tables = read_pdf(
    r"C:\Users\Himanshu Poddar\Desktop\pdf_file.pdf",
    pages='all',
    multiple_tables=True
)

# 遍历并查看每个表格
for index, table in enumerate(all_tables):
    print(f"=== 第 {index+1} 个表格 ===")
    print(table)
    print("\n")

进阶技巧

  • 指定特定页面提取
    如果你不需要所有页面的表格,可以直接指定页码(支持单个页码、多个页码或范围):

    # 提取第2页和第4-6页的表格
    target_tables = read_pdf(
        r"C:\Users\Himanshu Poddar\Desktop\pdf_file.pdf",
        pages='2,4-6',
        multiple_tables=True
    )
    
  • 优化表格识别精度
    如果某些表格识别不准确,可以根据PDF的类型调整识别模式:

    • 对于带明确边框的点阵式表格,添加lattice=True参数
    • 对于无明确边框的流式表格,添加stream=True参数
    # 针对点阵式表格优化提取
    lattice_tables = read_pdf(
        r"C:\Users\Himanshu Poddar\Desktop\pdf_file.pdf",
        pages='all',
        multiple_tables=True,
        lattice=True
    )
    
  • 直接访问单个表格
    返回的列表中每个元素对应一个表格,你可以通过索引直接定位:

    # 获取第二个表格
    second_table = all_tables[1]
    

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.22 09:23:52