作者 | 若名

出品 | AI科技大本营

如果经常跟数据表格打交道,那你应该体验过那种令人烦躁到抓狂的心情。但现在,学会下面将要介绍的一款工具的使用方法,相信我,它会让你在工作中简直不能更舒爽。

Excalibur,从古希腊语翻译过来就是“神剑”,它现在也是一种用于从 PDF 中提取表格数据的 Web 界面,使用 Python 3 编写,由 Camelot(Python 库) 提供支持,可以让任何人轻松地从 PDF 文件中提取表格数据。需要注意的是,Excalibur 仅适用于基于文本的 PDF 文件,扫描文件不在此列。

Camelot 和 Excalibur 的作者和维护者是来自新德里 Bharati Vidyapeeth 工程学院的 Vinayak Mehta,目前他正全职做这些项目。

Excalibur 的四大特性

可移植文件格式

PDF 文件定义了将字符放置在相对于页面左下角的 x,y 坐标的指令。通过将某些字符放在比其他字符更近的地方来模拟单词。空格是通过将单词放在相对较远的地方来模拟的。最后,通过放置在电子表格中显示的字词来模拟表格,格式没有表格结构的内部表示。

自动检测 PDF 中的表格数据

可移植文件格式不是为表格数据设计的。可悲的是,许多开放数据共享时都是 PDF 文件,但对其中的表格进行分析却是一件非常痛苦的事。简单的复制粘贴行不通,Excalibur 通过自动检测 PDF  中的表格并让你通过 Web 界面将它们保存为 CSV 和 Excel 文件,这使 PDF 表格提取变得非常简单。

可动态调整表格提取规则

虽然有很多广泛用于 PDF 表格提取的开源和闭源工具,但他们输出的表格良莠不齐。Excalibur 由 Camelot 提供支持,为用户提供附加设置以调整表格提取并获得最佳效果。相较而言,它的性能要好于其他开源工具和库。

数据完全可控且安全

你可以完全控制数据,因为所有文件存储和处理都在你自己的本地或远程计算机上进行。Excalibur 还可以配置 MySQL 和 Celery 系统,以并行和分布式方式执行表格提取任务。默认情况下,任务按顺序执行。

快速上手指南

下载和安装

https://github.com/camelot-dev/excalibur/releases

https://excalibur-py.readthedocs.io/en/master/user/install.html#install

设置开发环境

你可以使用 pip 轻松安装开发依赖项:

$ pip install excalibur-py [dev]

测试(很快)

安装后,你可以使用以下命令运行测试:

$ python setup.py test

使用“神剑”

安装后,可以使用以下命令初始化元数据的数据库:

$ excalibur initdb

然后使用以下命令启动 Web 服务器:

$ excalibur webserver

现在,你可以转到 http:// localhost:5000 并开始从 PDF 文件中提取表格数据。

上传 PDF

你可以使用 Web 界面上传 PDF 文件,还可以与之前的上传进行整合。

自动检测表格

Excalibur 可以自动检测 PDF 中的表格。

绘制表格区域或者放置分隔符

如果表格深埋在文本内部并且自动检测失败,则可以通过绘制表格区域和列分隔符进行操作。

加载已保存的规则设置

你也可以保存 PDF 文件中表格提取的规则设置,并将其应用于新的 PDF 文件以提取具有类似结构的表格。

查看和下载数据

最后,你可以查看提取的表格并将其下载为 CSV 或 Excel 文件。Excalibur 还支持 JSON 和 HTML 格式。

最后给出源代码链接,你可以通过以下方式查看最新源代码:

$ git clone https://www.github.com/camelot-dev/excalibur


 热 文 推 荐  

☞ 「傻瓜」才能写出好代码!

☞ 漫画 | 从搬家到容器技术 Docker 应用场景解析

☞ Hacker News 12 月招聘趋势:React 已连续霸榜 19 个月

☞ 从倾家荡产到身价百亿,这个85后只用了8年

☞ 难逃寒冬裁员的“大追杀”,30 岁女码农该何去何从?

☞ OpenStack 2018 年终盘点

拼多多黄峥给陆奇“兼职”,欲挖掘这类AI人才

☞ 老程序员肺腑忠告:千万别一辈子靠技术生存!

print_r('点个好看吧!');
var_dump('点个好看吧!');
NSLog(@"点个好看吧!");
System.out.println("点个好看吧!");
console.log("点个好看吧!");
print("点个好看吧!");
printf("点个好看吧!\n");
cout << "点个好看吧!" << endl;
Console.WriteLine("点个好看吧!");
fmt.Println("点个好看吧!");
Response.Write("点个好看吧!");
alert("点个好看吧!")
echo "点个好看吧!"

点击“阅读原文”,打开 CSDN App 阅读更贴心!

喜欢就点击“好看”吧!

这个使用 Python 编写的 PDF 神器你值得拥有!相关推荐

  1. python跨年表白神器--你值得拥有!

    教你做python跨年表白神器 点赞收藏后,快去表白!!! 这里是文章的表白神器所有代码+图片+思路解析,对文章不是太懂得小伙伴们可以自取一下哟:跨年表白神器所有完整配置,直接拿来用 hello,大家 ...

  2. python 编写的 pdf 裁剪工具 删除空白页

    到了写论文的日子,总是会有各种奇怪的需求出现,比如说,在你把word导成pdf后,会因为分页符,出现空白页,这时候老师又要说你态度不认真了,那么就有了下面这个工具 #coding=utf-8impor ...

  3. python编写win 本地reader程序_使用Python、win32api和Acrobat Reader 9打印PDF

    我有报告,我要发送到一个系统,要求报告是可读的PDF格式.我尝试了所有的免费库和应用程序,我发现唯一有效的是Adobe的acrobat家族.在 我用python编写了一个快速脚本,它使用win32ap ...

  4. effective python编写高质量Python代码的59个有效方法 pdf下载

    用Python编写程序,是相当容易的,所以这门语言非常流行.但若想掌握Python所特有的优势.魅力和表达能力,则相当困难,而且语言中还有很多隐藏的陷阱,容易令开发者犯错.本书使用了59个主题讲述了p ...

  5. Python+pymupdf处理PDF文档案例6则

    推荐图书: <Python程序设计(第3版)>,(ISBN:978-7-302-55083-9),清华大学出版社,2020年6月第1次印刷,7月第2次印刷 京东购买链接:https://i ...

  6. 最近爆火的一款 PDF 神器!

    这是「进击的Coder」的第 808 篇技术分享 作者:小 G 来源:GitHubDaily " 阅读本文大概需要 5 分钟. " 为了解决文档交流和打印的问题,1993 年,Ad ...

  7. 如何用Python批量提取PDF文本内容?

    本文为你展示,如何用Python把许多PDF文件的文本内容批量提取出来,并且整理存储到数据框中,以便于后续的数据分析. 问题 最近,读者们在后台的留言,愈发五花八门了. 写了几篇关于自然语言处理的文章 ...

  8. python pypdf2另存为图片_用Python玩转PDF的各种骚操作

    文/Python数据科学  图片来源于网络 Portable Document Format(可移植文档格式),或者PDF是一种文件格式,可以用于跨操作系统的呈现和文档交换.尽管PDF最初是由Adob ...

  9. 【Python】用于在 Python 中处理 PDF 文件的 PyPDF2 库

    作者 | megha152 编译 | Flin 来源 | analyticsvidhya 介绍 PDF 代表便携式文档格式.它使用 .pdf 扩展名.这种类型的文件主要用于共享目的.它们不能被修改,从 ...

最新文章

  1. Verilog中实现电平检测
  2. mysql 安装dso命令_LAMP环境搭建
  3. 如何设置GridView的内框线颜色
  4. 北邮OJ 884. 16校赛-Average Modulo
  5. kubernetes(七)项目部署方式:蓝绿部署,灰度发布/金丝雀发布,滚动更新
  6. Java-Iterator迭代器
  7. 调整步长支持跨数据库的ID唯一性弊端
  8. 德江多措施推进大数据应用“智慧德江”建设
  9. 传递集合对象_【Java学习笔记(九)】之集合的要点介绍
  10. java getname threads_Java8并发教程:Threads和Executors
  11. 目标检测 | CVPR 2019 目标检测论文汇总
  12. Python可视化:python画图字体设置
  13. [强网杯 2019]随便注
  14. java虚拟机与安卓虚拟机的区别
  15. Ubuntu16.04《解压7z.001文件》
  16. 获取手机唯一标识插件_H5能获取到手机设备ID或者手机浏览器唯一识别码吗
  17. 电脑死机怎么办?超级简单的方法
  18. 如何将试卷导入到mysql中,一种基于C#中将Word试题导入数据库实现方法.doc
  19. 时间复杂度和空间复杂度及多道例题讲解
  20. HAUE河工计院OJ1100 - 1150题解

热门文章

  1. 如何自己用U盘重装系统
  2. 剑指Offer之寻找二叉树下一个节点
  3. 三菱fx3u通讯手册_三菱FX3U与变频器通讯程序如何编写
  4. 中国送餐行业市场供需与战略研究报告
  5. 双重特异性酪氨酸磷酸化调节激酶1A行业调研报告 - 市场现状分析与发展前景预测
  6. html ie浏览器写入内容,js在IE下创建本地文件,并读取内容
  7. 漏洞升级?黑客可利用 Spring 框架漏洞部署 Mirai 恶意软件
  8. 文字生成视频,只需一步
  9. 马云:今后数字技术是让人类能够更好的生存下去
  10. 软件工程的迷途与沉思