Camelot:友好的PDF形式数据提取工具
Python命令行工具,以便任何人都可以轻松地从PDF文件中绘制形式数据。
使用Camelot从PDF文档中提取数据非常简单
Camelot有三种安装方法:
注意:
如果稍后引入情况,可能会出现错误,可能会缺少错误,您可以使用PIP安装。
源代码参考文献文档:https://github.com/socialcopsdev/camelot文档:https://camelot-readthedocs.io/en/en/master/
从PDF文件中提取表格:
上述示例的说明:1。创建一个表对象
默认情况下,Camelot仅使用PDF提取表。要指定多个页面,您可以使用页面关键字参数:
您也可以使用命令行执行相同的操作
页面关键字参数接受页码页码的逗号分隔的字符串。,20末。
注意:
如果PDF文件是加密表,则需要添加密码参数,并且值是解密密码
命令行:
目前,Camelot仅支持使用ASCII密码和算法代码1或2加密的PDF。如果无法读取PDF,则是异常的。这可能是因为未提供密码,密码不正确或不支持加密算法。
2.查看表格(线和列)的形状。查看表的索引,以查看我们可以使用其索引访问每个表。从上面的代码片段,我们可以看到表对象的一个表只有一个表,因为n = 1.LET使用索引访问索引表0并检查其形状。
3.打印分析报告。
从解析参数的评估标准来看,准确性非常好,空白较少,这意味着表最有可能正确提取表。您可以使用表对象的DF属性作为pandas dataframe访问表。
4.以提取形式打印内容数据格式是pandas datafrane,因此请与DF访问
5.导出表格中的内容可以使用其to_csv()方法将表导出为csv file..或您可以使用to_json()或方法表将其导出到JSON格式,Excel,HTML文件或SQLITE数据库。如下:
以上1?5步可以直接通过命令行完成。
使用的PDF示例的门户: - >此处
流可用于解析表以模拟表结构。它是在PDFMiner的功能上构建的,即使使用边缘间距,页面上的字符也将其分组为单词和句子。
网格本质上更多,并且不依赖于投机。它可用于分析分配在单元之间的线,并且可以自动分析页面上的多个表。
它首先使用它来转换它,然后使用该应用程序处理它以获取。
处理步骤如下:1。检测细分市场
2.线段叠加了“和”其像素强度以检测线路。
3.通过re -re -re -line段计算,这次是“或”其像素强度。
4.由于PDF页面的大小和图像不同,因此检测到的表边界,线路跨点和线段将放大到PDF页面的坐标空间中,并创建表单的形式。
5.使用线段和线交叉检测来生成单元6。最后,页面上的单词将根据其X和y坐标分配给表格的单元格
使用Caselot参数:
参数描述:
-Q Quiet文本未输出日志和警告-P页文本范围,可以很好地使用或页码范围,例如:1,3,4或1,4-PW-PASSWordtext解密密码-O- 输出文本输出路径-F-format [CSVJSON-zip create-split-split-split_text split文本由多个单元格跨度。flag-flag_size根据字体的大小标记文本。strip_text文本在将字符串分配给单元格之前,应删除表中的字符-M -Margins字符边缘,行边缘和单词的单词边缘
原始:https://juejin.cn/post/7095555842400346439