从财报 PDF 里抽表格,得到的结果是一行行散落的数字,列关系全丢,后续统计完全不可用。

一开始怀疑是「扫描版 PDF 没有文本层,抽取结果为空」,查了一圈,方向不对。

排查方向其实有限,先把可能性排一排。按文本流抽取无法保留单元格边界。少数情况下是表格跨页后表头丢失。

还有一种情况,合并单元格导致行列错位。

上来先改用带版面分析的表格抽取

python -c "import pdfplumber;print(pdfplumber.open('a.pdf').pages[0].extract_tables())"

随后对跨页表格手工补表头

python -c "print(df.columns.tolist())"

无文本层时先做 OCR 再抽表

python ocr_table.py --input scan.pdf --lang ch

末了把结果导出成结构化文件核对

python -c "df.to_csv('table.csv', index=False)"

那几天正好在做别的变更,先把时间线对齐才敢动手。

改完先别撤,确认这几项。表格导出后行列对齐,数字与原文一致,跨页部分合并成完整的一张表。

表格抽取很难做到百分百准确,关键财务数字建议再抽样人工核对,直接入库风险很高。线上能稳定复现的问题都不算难,难的是只在大流量下才出现的那种。

作者 9823189