python提取pdf表格数据 无边框_Python使用Tabula提取PDF表格数据
今天遇到一个批量读取pdf文件中表格数据的需求,样式大体是以下这样:
python读取PDF无非就是三种方式(我所了解的),pdfminer、pdf2htmlEX 和 Tabula。综合考虑后,选择了最后一种。下面对三种方式分别介绍:
pdfminer
该方式从网上搜索的结果是,可以提取pdf文本数据,但是提取后表格信息就乱了。所以本人没有亲自实验,就果断放弃了实验该方法。如果只是提取pdf里面的文本内容,该方式可能是比较合适的。
pdf2htmlEX
#-*- conding: utf-8 -*-
import subprocess
subprocess.call('"D:\Program Files (x86)\pdf2htmlEX-win32-0.14.6-upx-with-poppler-data\pdf2htmlEX.exe" --dest-dir E:\\test\extract\\2017gq\\out E:\\test\extract\\2017gq\\a53277ce525547088780c4b94accb7b5.pdf', shell=True)
执行以上代码,会在指定目录 E:\test\extract\2017gq\out 下生成对应html文件,浏览器中查看效果:
可以看到整体转换的效果非常不错,但是转换后的标签没有特点,使数据的提取变得非常困难。多番尝试后,感觉该方法不够通用,没法解决我的需求。也许对于单纯的pdf转html,该方式可能是最好的选择。
Tabula
Tabula是专门用来提取PDF表格数据的,同时支持PDF导出为CSV、Excel格式。
官网: http://tabula.technology/
Github: https://github.com/chezou/tabula-py
首先安装tabula-py: pip install tabula-py
tabula-py依赖库包括java、pandas、numpy,所以需保证运行环境中安装了这些库。
#-*- conding: utf-8 -*-
import tabula
df = tabula.read_pdf("E:\\test\\extract\\2017gq\\a53277ce525547088780c4b94accb7b5.pdf", encoding='gbk', pages='all')
print(df)
for indexs in df.index:
# 遍历打印企业名称
print(df.loc[indexs].values[1].strip())
执行以上代码,成功打印出表格中的所有企业名称,查看打印的 df 的结构,如下图:
总结
以上三种方式中,最后一种方式完美的解决了我的从PDF表格中提取数据的需求,希望能抛砖引玉,大家在使用时选择最适合自己的方法,如有介绍不当之处,望留言中指正,谢过。
python提取pdf表格数据 无边框_Python使用Tabula提取PDF表格数据相关推荐
- python读取pdf表格_Python使用Tabula提取PDF表格数据
今天遇到一个批量读取pdf文件中表格数据的需求,样式大体是以下这样: python读取PDF无非就是三种方式(我所了解的),pdfminer.pdf2htmlEX 和 Tabula.综合考虑后,选择了 ...
- Bootstrap——表格(基本实例、表头选项、条纹状表格、带边框的表格、无边框的表格、鼠标指针悬停、紧凑表格、状态类、响应式表格)
在网页制作中,通常会用到表格的鼠标悬停.隔行变色等功能.Bootstrap中提供了一系列表格布局样式,利用该样式可以帮助开发者快速开发出美观的表格,作用于<table>元素的表格样式如下表 ...
- python tabula 使用方法_Python使用Tabula提取PDF表格数据
今天遇到一个批量读取pdf文件中表格数据的需求,样式大体是以下这样: python读取PDF无非就是三种方式(我所了解的),pdfminer.pdf2htmlEX 和 Tabula.综合考虑后,选择了 ...
- java读取pdf多表格_在Java中使用tabula提取PDF中的表格数据
问题:如何将pdf文件中指定的表格数据提取出来? 尝试过的工具包有:pdfbox.tabula.最终选用tabula 两种工具的比较 pdfbox 其中,pdfbox能将pdf中的内容直接提取成Str ...
- python写入excel怎么跨列居中_Python使用OpenPyXL处理Excel表格
官方文档: http://openpyxl.readthedocs.io/en/default/ OpenPyXL库 --单元格样式设置 单元格样式的控制,依赖openpyxl.style包,其中定义 ...
- python读取json文件制作中国人口地图_Python对JSON文件世界人口数据进行可视化
制作世界人口地图,用json模块来处理,将人口数据进行可视化!!! 下载JSON格式的人口数据,下面附上完整的,在网站中https://datahub.io/下载的数据集的详细过程!!! 1.下载世界 ...
- python之33个关键字详解_Python解析、提取url关键字的实例详解
解析url用的类库: python2版本: from urlparse import urlparse import urllib python3版本: from urllib.parse impor ...
- 用python进行多页数据爬取_Python Scrapy如何实现多页数据爬取?
Python Scrapy如何实现多页数据爬取? 发布时间:2020-06-23 11:47:46 来源:亿速云 阅读:112 作者:清晨 这篇文章将为大家详细讲解有关Python Scrapy如何实 ...
- python 40位的数减个位数_Python数据分析入门教程(五):数据运算
作者 | CDA数据分析师 进行到这一步就可以算是开始正式的烹饪了,在这部分之前的数据操作部分我们列举了一些不同维度的分析指标,这一章我们主要看看这些指标都是怎么计算出来的. 一.算术运算 算术运算就 ...
- python 录入数据不重复_python Django批量导入不重复数据
本文为大家分享了python Django批量导入不重复数据的实现代码,供大家参考,具体内容如下 程序如下: #coding:utf-8 import os os.environ.setdefault ...
最新文章
- 【老孙随笔】关羽和吕蒙——天才的失败
- mysql字段中ID值自动增长
- USB基础---设备、配置、接口、端点和字符串描述符
- opencv4.10不能使用sift = cv2.xfeatures2d.SIFT_create()
- 树莓派入门教程 - 0 - 准备篇 - 0.1 第一次开机
- Codeforces 1039D You Are Given a Tree (看题解)
- 最新游戏帐号交易平台源码+支持游戏币交易
- 计算机无法切换用户权限,“无法更改的Administrator账户密码”的解决方案
- 算法转 Java 后端,2021秋招斩获腾讯、京东、百度等大厂 offer 面经分享!
- 摄像头各参数的意义_摄像机参数及性能指标浅谈
- 攻防世界 web高手进阶区 9分题 favorite_number
- 我在淘宝做前端的这三年 — 第一年
- 黑炫酷的监控界面,实际上是用了什么开源工具?
- matlab中Rip是什么意思,rip什么意思
- VS2008与Office2007冲突解决办法
- 把复杂的事物及逻辑尽量简单化
- 01-Spring是什么?Spring有什么用?
- [蓝桥杯] 剪邮票 (Python 实现)
- 怎么更改计算机管理员用户名和密码,Win10系统无法修改管理员账户密码怎么办?...
- 办理离职手续流程的详细流程(离职交接的标准流程)
热门文章
- R语言建立VAR模型分析联合内生变量的动态关系
- 教师计算机知识培训内容,新学期教师计算机培训方案
- 中国通信简史 (上)
- vmoptions默认配置_idea VM options参数优化
- 字段计算器python教程_字段计算器综合(python-02)
- MyDiskTest v2.98-U盘扩容检测工具
- 【数据分析系列】Python数据预处理总结篇
- dtft性质及证明_信号处理基础-- DTFT、DFT和STFT基本概念
- 水电缴费系统php源码_php水电费缴费管理系统
- 广州地铁线路查询程序C语言,c语言广州地铁系统报错,帮帮忙看一看哈?