Python提取pdf中的表格数据(附实战案例)
14天阅读挑战赛
今天给大家介绍一个Python使用工具,那就是从pdf文件中读取表格数据,主要用到第三方库 pdfplumber。
pdfplumber简介
pdfplumber是一款基于pdfminer,完全由python开发的pdf文档解析库,不仅可以获取每个字符、矩形框、线等对象的具体信息,而且还可以抽取文本和表格。目前pdfplumber仅支持可编辑的pdf文档。
虽然pdfminer也可以对可编辑的pdf文档进行解析,但是比较而言,pdfplumber有以下优势:
- 二者都可以获取到每个字符、矩形框、线等对象的具体信息,但是pdfplumber在pdfminer的基础上进行了封装和处理,使得到的对象更易于使用,对用户更友好。
- 二者都能对文本解析,但是pdfminer输出的文本在布局上可能与原文差别比较大,但是pdfplumber抽取出的文本与原文可以有更高的一致性。
- pdfplumber实现了表格抽取逻辑,基于最基本的字符、线框等对象的位置信息,定位、识别pdf文档中的表格。
首先安装
pip install pdfplumber
实战案例
本次实战,我们需要将pdf中的获奖队伍信息提取出来,然后保存到excel表格中。
原始pdf文件中大多数都是如上图所示的表格,这里为了不泄露个人隐私,我就先打上码了哈。
接着开始敲代码提取表格数据!
import pandas as pd
import pdfplumberpdf = pdfplumber.open("第十届“正大杯”国奖名单.pdf")
df = pd.DataFrame()
for i in range(3,53): # 这里3是指表格信息是从第4页开始的(程序计数是从0开始,所以这里第4页对应程序中的3),53是结束位置page = pdf.pages[i] # 读取pdf中的每一页table = page.extract_table() # 从页数据中提取表格数据df = df.append(table) # 将提取的数据转换为DataFrame二维表格形式
df.drop_duplicates(inplace=True) # 删除重复值
df.to_excel("第十届“正大杯”国奖名单.xlsx", header=False, index=False) # 将提取的数据保存为excel
这里,我先是用了循环来提取多页,3是指表格信息是从第4页开始的(程序计数是从0开始,所以这里第4页对应程序中的3),53是结束位置 。
运行之后的结果如下:
很简单就将pdf中的表格提取出来了。
做到这里,我只是将一个pdf中的数据提取出来了,可是还有几个类似的pdf需要提取,于是我将上述代码功能进行了简单的封装(功能还比较简陋,各位可根据自己的需要进行扩展)。
def pdf_to_excel(file_path,start:int,end:int,excel_name=None):'''params:file_path:需要提取表格的pdf文件的绝对路径start:出现表格的起始页码end:表格结束页码excel_name:最后保存excel文件的文件名(默认为原始pdf文件名)'''pdf = pdfplumber.open(file_path)if not excel_name:excel_name = file_path.split('\\')[-1].split('.')[0]df_result = pd.DataFrame()for i in range(start-1,end):page = pdf.pages[i]table = page.extract_table()df_result = df_result.append(table)df_result = df_result.drop_duplicates(inplace=True)df_result.to_excel(excel_name+'.xlsx',index=False)pdf_to_excel(file_path=r'C:xxx.pdf',start=4,end=53)
以上就是本次分享的python小工具,希望对有同样需求的你有所帮助!
Python提取pdf中的表格数据(附实战案例)相关推荐
- 怎么提取pdf中的表格数据_如何从pdf第1部分中提取表格数据
怎么提取pdf中的表格数据 In this article, we talk about the challenges and principles of extracting tabular dat ...
- java读取pdf多表格_在Java中使用tabula提取PDF中的表格数据
问题:如何将pdf文件中指定的表格数据提取出来? 尝试过的工具包有:pdfbox.tabula.最终选用tabula 两种工具的比较 pdfbox 其中,pdfbox能将pdf中的内容直接提取成Str ...
- python提取网页中表格数据_Python2 BeautifulSoup 提取网页中的表格数据及连接
网址:http://quote.eastmoney.com/ce- 要做的是提取网页中的表格数据(如:板块名称,及相应链接下的所有个股,依然是个表格) 暂时只写了这些代码: import urllib ...
- Python提取PDF中的文字和图片
一,使用Python提取PDF中的文字 # 只能处理包含文本的PDF文件 #coding=utf-8 import sys import importlib importlib.reload(sys) ...
- [小技巧] 使用tabula批量提取pdf中的表格
想不到我也能更新这种东西了 原文链接~~~~~ [小技巧] 使用tabula批量提取pdf中的表格https://mp.weixin.qq.com/s/HWLneqJj42ywLghPR-ushA 起 ...
- python提取pdf中的图片_提取PDF中内容(表格篇)
由于(质量优质)PDF较好的阅读性,工作当中难免有文件使用PDF格式保存和流通的.但是由于PDF过于追求视觉的享受,所以在编辑其内容元素上相较微软office系列的确困难.不时会碰到看的到内容却难以直 ...
- 如何提取论文中的表格数据(pdf转换excel)
如何从文献中提取表格数据 1.下载连接 2.下载 2.1 选字版本并下载解压 2.2 下载安装java 3.使用说明 3.1初始页面 3.2 框选需要转换的表格 3.3 结果展示 文献中一些表格数据, ...
- 用python 将PDF中的表格转化为Excel
这几天想统计一下<中国人文社会科学期刊 AMI 综合评价报告(2018 年):A 刊评价报告>中的期刊,但是只找到了该报告的PDF版,对于表格的编辑不太方便,于是想到用Python将表格转 ...
- python中提取几列_Python一键提取PDF中的表格到Excel(实例50)
从PDF文件获取表格中的数据,也是日常办公容易涉及到的一项工作.一个一个复制吧,效率确实太低了.用Python从PDF文档中提取表格数据,并写入Excel文件,灰常灰常高效. 上市公司的年报往往包含几 ...
最新文章
- [转]大三下,我们该做什么?一篇被转万次的日志,你值得一看
- python3使用cx_Oracle中文乱码
- 根据ip查经纬度软件_f.lux - 必须推荐给大家的开源免费的护眼软件
- 第三百一十节,Django框架,模板语言
- 单调不减序列查询第一个大于等于_[力扣84,85] 单调栈
- java中跳转页面的干法_java – 有没有一种干法来整合RowMappers的相同代码?
- python装饰器详解-学习笔记-Python装饰器详解
- 【Codeforces811E】Vladik and Entertaining Flags [线段树][并查集]
- 独立软件测试团队在敏捷开发中的几个特别实践
- ASUS主板ALC887声卡,RTL81XX网卡,黑苹果驱动安装
- mysql 索引原理详解
- npm安装包报400错误
- 系统集成项目管理工程师备考资料(口袋应试第二版)14
- 微信公众号访问 ssm框架根目录下MP_verify_xxxxxx.txt的解决方法
- 读了下神书 Introduction to Linear Optimization
- 计算机超链接文档顶端,电脑在Word文档里插入目录超链接的方法
- 关于dcm4chee方面的问题,求各位英雄帮助,小女子感激不尽.... ...
- 基于go的二维码签到系统
- android+获取电池信息,Delphi XE5 Android应用程序获取电池信息
- 【用户价值分析 RFM模型】用户价值分析