每天一个小实例——使用pdfplumber提取pdf表格及文本,并保存到excel

pdfplumber简介

(1)可以方便地获取pdf的各种信息,包括文本、表格、图表、尺寸等,它不支持修改或生成pdf,也不支持对pdf扫描件的处理

(2)pdfplumber中有两个基础类,PDF和Page。前者用来处理整个文档,后者用来处理整个页面

实操步骤:

(1) 使用pdfplumber提取表格文本

①使用 pdfplumber.open("path/to/file.pdf") 读取pdf,返回一个pdfplumber.PDF类实例

PS.加载带密码的pdf需要传入参数password,例如:pdfplumber.open("file.pdf", password = "test")

②pdfplumber.PDF类介绍

Ⅰ.metadata属性:从PDF的Info中获取元数据键 /值对字典。 通常包括“ CreationDate”,“ ModDate”,“ Producer”等。

Ⅱ.pages属性:一个包含多个pdfplumber.Page实例的列表,每一个实例代表PDF每一页的信息。

Ⅲ.len(pdf.pages)——读取页数;first_page=pdf.pages[0]——选取页码

③pdfplumber.Page类介绍

Ⅰ.page_number属性:页码顺序,从第一页的1开始,第二页为2,依此类推

Ⅱ.width属性/.height属性:页面宽度/宽度

Ⅲ.extract_text(x_tolerance=0, y_tolerance=0)方法:将页面的所有字符对象整理到一个字符串中。

  • 若其中一个字符的x1与下一个字符的x0之差大于x_tolerance,则添加空格。
  • 若其中一个字符的doctop与下一个字符的doctop之差大于y_tolerance,则添加换行符。

 Ⅳ.extract_tables(table_settings) 方法:从页面中提取表格数据

  • .find_tables(table_settings={}):返回Table对象的列表。Table对象提供对.cells,.rows和.bbox属性以及.extract(x_tolerance = 3, y_tolerance = 3)方法的访问。
  • .extract_tables(table_settings={}):返回从页面上找到的所有表中提取的文本,并以结构table -> row -> cell的形式表示为列表列表的列表。
  • .extract_table(table_settings={}):返回从页面上最大的表中提取的文本,以列表列表的形式显示,结构为row -> cell。 (如果多个表具有相同的大小——以单元格的数量来衡量——此方法将返回最接近页面顶部的表
  • .debug_tablefinder(table_settings={}):返回TableFinder类的实例,可以访问.edges,.intersections,.cells和.tables属性

输出:

 

(2)整理成dataframe格式,保存为excel 

输出:

 

 

 

  • 2
    点赞
  • 28
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值