14天阅读挑战赛

今天给大家介绍一个Python使用工具,那就是从pdf文件中读取表格数据,主要用到第三方库 pdfplumber。

pdfplumber简介

pdfplumber是一款基于pdfminer,完全由python开发的pdf文档解析库,不仅可以获取每个字符、矩形框、线等对象的具体信息,而且还可以抽取文本和表格。目前pdfplumber仅支持可编辑的pdf文档

虽然pdfminer也可以对可编辑的pdf文档进行解析,但是比较而言,pdfplumber有以下优势:

  1. 二者都可以获取到每个字符、矩形框、线等对象的具体信息,但是pdfplumber在pdfminer的基础上进行了封装和处理,使得到的对象更易于使用,对用户更友好。
  2. 二者都能对文本解析,但是pdfminer输出的文本在布局上可能与原文差别比较大,但是pdfplumber抽取出的文本与原文可以有更高的一致性。
  3. 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中的表格数据(附实战案例)相关推荐

  1. 怎么提取pdf中的表格数据_如何从pdf第1部分中提取表格数据

    怎么提取pdf中的表格数据 In this article, we talk about the challenges and principles of extracting tabular dat ...

  2. java读取pdf多表格_在Java中使用tabula提取PDF中的表格数据

    问题:如何将pdf文件中指定的表格数据提取出来? 尝试过的工具包有:pdfbox.tabula.最终选用tabula 两种工具的比较 pdfbox 其中,pdfbox能将pdf中的内容直接提取成Str ...

  3. python提取网页中表格数据_Python2 BeautifulSoup 提取网页中的表格数据及连接

    网址:http://quote.eastmoney.com/ce- 要做的是提取网页中的表格数据(如:板块名称,及相应链接下的所有个股,依然是个表格) 暂时只写了这些代码: import urllib ...

  4. Python提取PDF中的文字和图片

    一,使用Python提取PDF中的文字 # 只能处理包含文本的PDF文件 #coding=utf-8 import sys import importlib importlib.reload(sys) ...

  5. [小技巧] 使用tabula批量提取pdf中的表格

    想不到我也能更新这种东西了 原文链接~~~~~ [小技巧] 使用tabula批量提取pdf中的表格https://mp.weixin.qq.com/s/HWLneqJj42ywLghPR-ushA 起 ...

  6. python提取pdf中的图片_提取PDF中内容(表格篇)

    由于(质量优质)PDF较好的阅读性,工作当中难免有文件使用PDF格式保存和流通的.但是由于PDF过于追求视觉的享受,所以在编辑其内容元素上相较微软office系列的确困难.不时会碰到看的到内容却难以直 ...

  7. 如何提取论文中的表格数据(pdf转换excel)

    如何从文献中提取表格数据 1.下载连接 2.下载 2.1 选字版本并下载解压 2.2 下载安装java 3.使用说明 3.1初始页面 3.2 框选需要转换的表格 3.3 结果展示 文献中一些表格数据, ...

  8. 用python 将PDF中的表格转化为Excel

    这几天想统计一下<中国人文社会科学期刊 AMI 综合评价报告(2018 年):A 刊评价报告>中的期刊,但是只找到了该报告的PDF版,对于表格的编辑不太方便,于是想到用Python将表格转 ...

  9. python中提取几列_Python一键提取PDF中的表格到Excel(实例50)

    从PDF文件获取表格中的数据,也是日常办公容易涉及到的一项工作.一个一个复制吧,效率确实太低了.用Python从PDF文档中提取表格数据,并写入Excel文件,灰常灰常高效. 上市公司的年报往往包含几 ...

最新文章

  1. [转]大三下,我们该做什么?一篇被转万次的日志,你值得一看
  2. python3使用cx_Oracle中文乱码
  3. 根据ip查经纬度软件_f.lux - 必须推荐给大家的开源免费的护眼软件
  4. 第三百一十节,Django框架,模板语言
  5. 单调不减序列查询第一个大于等于_[力扣84,85] 单调栈
  6. java中跳转页面的干法_java – 有没有一种干法来整合RowMappers的相同代码?
  7. python装饰器详解-学习笔记-Python装饰器详解
  8. 【Codeforces811E】Vladik and Entertaining Flags [线段树][并查集]
  9. 独立软件测试团队在敏捷开发中的几个特别实践
  10. ASUS主板ALC887声卡,RTL81XX网卡,黑苹果驱动安装
  11. mysql 索引原理详解
  12. npm安装包报400错误
  13. 系统集成项目管理工程师备考资料(口袋应试第二版)14
  14. 微信公众号访问 ssm框架根目录下MP_verify_xxxxxx.txt的解决方法
  15. 读了下神书 Introduction to Linear Optimization
  16. 计算机超链接文档顶端,电脑在Word文档里插入目录超链接的方法
  17. 关于dcm4chee方面的问题,求各位英雄帮助,小女子感激不尽.... ...
  18. 基于go的二维码签到系统
  19. android+获取电池信息,Delphi XE5 Android应用程序获取电池信息
  20. 【用户价值分析 RFM模型】用户价值分析

热门文章

  1. GPRS外置模块连接电脑进行拨号上网
  2. 黑马程序员——折纸问题、九九乘法表和菱形图案的打印
  3. 关于黑马手机卫士的学习总结
  4. aspx repeater 用法_asp.net中repeater控件用法笔记
  5. 飞秋的文件读取、写入代码
  6. 7-14 集合相似度 (25分)set
  7. C语言实现Huffman的编码和解码
  8. java pdf转txt【完整代码包含jar包】
  9. Dev-C++创建项目
  10. 《淘宝店铺设计装修一册通》一2.6 光影魔术手——简单方便的修图工具