json - 将 PDF 中的文本提取为 JSON 或 XML 或其他什么?
问题描述
我正在尝试从 PDF 中提取数据 [价格、信息和数量](我有超过 10 000 个 PDF,因此无法免费试用该网站)。这是我得到的一个 PDF 示例:
我在 Python(这种任务的初学者和 Python 上的初学者)中尝试了它,使用了几个包,如 PyPDF2、pdfx 等,但我只得到这样的文本
使用 PyPDF2 :
因此,可以提取价格、数量和信息,但我有不同格式的 pdf,因此无法仅使用文本和某些算法提取信息。
我想做的事情,这是可能的,因为很多网站都在做,并让人们为此付费。我想以垂直的方式阅读它并转换以 XML/JSON 或简单的数据集提取的数据。
我想按列而不是按行阅读文档
有没有办法用 python 或其他语言做到这一点?
解决方案
首先让我告诉你,这不是一个容易解决的问题,因为野外的 PDF 文件在布局上往往非常多样化。我可以建议尝试一个非常适合从 PDF 文件中的表中提取信息的开源项目。它被称为 Tabula,您可以在https://tabula.technology获得它。
Tabula 将检测每个页面上的表格并将内容导出为 CSV 格式。将其保存为 CSV 后,使用 Python 获取信息应该会更容易。请注意,CSV 布局取决于 PDF 中的表格布局,这意味着您可能需要创建多个函数才能正确提取信息。
Tabula 并不完美,但它应该适用于大多数 PDF 文件,对于那些不适用的文件,您可能需要手动提取信息。
推荐阅读
- angular - 在 Angular 7 中安装 devDependencies 或依赖项
- discord.js - 如何将 JSON 文件中的数字递减到 0?
- angular - 离子 4 中的错误是“无法读取 null 的属性‘联系人’”
- python-3.x - 如何从数据框中删除重复项并使用每个样本的权重创建新的?
- java - 我在哪里可以找到要导入和使用的“org.terrier.realtime.memory.MemoryIndex”类?
- php - PHP 邮件程序不适用于 CWP(控制 Web 面板 CentOs)电子邮件设置
- html - 循环(更改日期)从网站中提取数据到工作表
- laravel - {!!Html::style('css/parsley.css') !!} 不工作
- python - 为 DNS 更新生成 TSIG 密钥环(作为编码的字节字符串)
- roku - Roku 中 WebView 的概念