Camelot是一个开源 PDF 表格提取工具,专为从 PDF 文件中提取表格数据而设计。无论是流解析还是格子解析,Camelot 都能高效地将 PDF 表格转换为 CSV、Excel、JSON 和 HTML 格式,方便数据分析和处理。其简单易用的接口和强大的功能,使其成为数据科学家和分析师的理想选择。
Camelot: 开源 PDF 表格提取工具,轻松转换数据
Camelot的主要功能特点
- 易用性:提供简单直观的 API 和命令行接口,即使没有深入了解 PDF 解析技术的用户也能快速上手。
- 灵活性:支持两种不同的表格检测方法:
- 流解析(Stream):适用于没有明确边界线的表格,通过检测文本的相对位置来识别表格。
- 格子解析(Lattice):适用于有明确边界线的表格,通过检测表格的线条来识别表格。
- 高性能:利用 C++ 编写的底层库 Tabula-py 进行加速,保证了高效率的表格识别。
- 多格式输出:支持将提取的数据导出为 CSV、Excel、JSON 和 HTML 等多种格式,方便用户在不同场景下使用。
- 自定义参数:允许用户调整参数,以优化对复杂或异常布局表格的识别效果。
功能应用
使用 Camelot,你可以:
- 快速高效地从 PDF 文档中批量提取表格数据。
- 针对特定 PDF 布局调整参数以提高准确性。
- 将提取的数据导出到常用的文件格式,便于进一步的数据分析和处理在数据分析项目中自动化数据录入过程,节省人力成本。
- 结合其他 Python 数据科学库(如 pandas 和 NumPy),进行数据清洗和深度分析。
camelot 快速上手
1、新建 camelot 项目
2、安装 Ghostscript,它用于解析 PDF 文件。macOS 用户可以使用 brew 来安装 Ghostscript。
brew install ghostscript
3、使用 pip 安装 camelot
pip install “camelot-py[base]”
4、新建 main.py 文件并输入以下内容
import camelot
tables = camelot.read_pdf(‘foo.pdf’)
tables.export(‘foo.csv’, f=’csv’, compress=False)
5、运行 main.py 程序
python3 main.py
对于 macOS 或 Linux 系统的用户来说,在运行 main.py 程序时,如果出现以下错误:
/ghostscript/_gsprint.py”, line 267, in <module>
raise RuntimeError(“Please make sure that Ghostscript is installed”)
可以在运行程序前,先配置 DYLD_LIBRARY_PATH 环境变量:
export DYLD_LIBRARY_PATH=/opt/homebrew/Cellar/ghostscript/10.03.1/lib/
成功运行 main.py 程序之后,在 camelot 项目根目录下生成对应的 csv 文件。
excalibur 快速上手
为了方便用户使用 camelot,camelot 团队提供了一个 Web 工具 —— excalibur。
1、使用 pip 安装 excalibur
pip install excalibur-py
2、初始化数据库
excalibur initdb
3、启动 excalibur 服务器
excalibur webserver
当服务器成功启动后,在浏览器中打开 http://127.0.0.1:5000/files 地址,就会看到以下操作界面:
excalibur 首页
之后,点击 Upload PDF 按钮选择本地 PDF 文件,就可以开始抽取表格了。此外 excalibur 还提供的检测表格的功能,使用效果如下图所示:
检测 PDF 表格