我正在处理这个 PDF 文件以从中解析表格数据。我希望使用tabula
或PyPDF2
从中提取表格,但 PDF 中的数据未存储在表格中。所以,我选择pdfplumber
从中提取文本。到目前为止,我能够逐行阅读文本。但我想不出一个通用模式,我可以用它来提取定价列表行,我可以存储在 pandas 数据框中并写入一个 excel 文件。
如果我应该构建一个正则表达式或其他任何我可以用来从这个 PDF 中提取定价列表的东西,你能帮我吗?因为我想不出任何适合 PDF 中数据混乱性质的特定正则表达式,有没有更好的方法可以采用?或者根本不可能?
代码
使用以下代码,我能够提取所有文本行,但问题是,一个价格条目分布在两行中。考虑当前行是列出有关条目的大多数详细信息的位置,我如何确定上一行或下一行是否也具有与当前条目相关的信息。
如果我能以某种方式弄清楚,处理列值的正确方法可能是每行 6-13 个,我如何确定列值是否位于当前行的这个特定位置?
import pdfplumber as scrapper
text = []
with scrapper.open('./report.pdf') as pdf:
for page in pdf.pages:
text.append(page.extract_text())
我正在使用的 PDF 文件: https ://drive.google.com/file/d/1GtjBf9FcKJCOJVNcGA9mvAshJ6t0oFca/view?usp=sharing