在以前的文章另类爬虫:从PDF文件中爬取表格数据中,咱们知道如何利用Python的camelot模块,经过写Python程序来提取PDF中的表格数据。本文咱们将学习如何用更便捷的工具从PDF中提取表格。
Excalibur是一个用来从PDF中提取表格数据的网页工具,而它正是以camelot为基础。该工具目前只支持文本类型的PDF,而不支持扫描后的PDF文档,关于其说明和使用文档能够参考网址: https://github.com/camelot-dev/excalibur 。html
在安装Excalibur以前,须要事先安装ghostscript,具体的安装方式能够参考:https://camelot-py.readthedocs.io/en/master/user/install-deps.html 。不一样系统安装ghostscript的方式不同,以笔者的mac电脑为例,安装命令以下:git
$ brew install tcl-tk ghostscript
安装ghostscript完毕后,再经过pip安装Excalibur,命令以下:github
$ pip3 install excalibur-py
以上就是所有的安装准备工做了。web
运行下面的命令启动Excalibur:算法
$ excalibur initdb $ excalibur webserver
前一句命令是初始化数据库,后一句命令是运行server服务。在浏览器中输入: http://localhost:5050 ,便可使用该平台。
进入该PDF表格提取平台,首页以下:数据库
笔者测试的PDF中含有如下表格:浏览器
咱们将该PDF文档上传至上述平台,点击“Upload PDF”按钮,再选择相应的PDF文档以及该表格所在的页码便可。PDF上传后,该表格所在的那一页以下图所示:bash
在右侧的Anvanced中的Flavor中选择“lattice”,并用鼠标框选出表格所在的区域,以下图:微信
再点击“View and Download Data”按钮,就能获得从PDF解析表格后获得的数据了。截图以下:工具
若是咱们还想将这个表格解析后的结果保存为文件,则能够在Download旁的下拉框中选择一种保存的形式,并点击Download按钮。好比,笔者选择保存为csv文件,则下载后的文件以下:
"Method","Precision","Recall","F-measure" "(S1) SP-CCG","67.5","37.2","48.0" "(S1) SP-CFG","71.1","39.2","50.5" "(S1) K4","70.3","26.3","38.0" "(S2) SP-CCG","63.7","41.4","50.2" "(S2) SP-CFG","65.5","43.8","52.5" "(S2) K4","67.1","35.0","45.8" "","Table 5: Extraction Performance on ACE.","",""
咱们能够发现,该表格解析后的结果仍是至关漂亮的。
本次分享到此结束,感谢你们的阅读。
注意
:本人现已开通微信公众号: Python爬虫与算法(微信号为:easy_web_scrape), 欢迎你们关注哦~~