前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >用python解析pdf中的文本与表格【pdfplumber的安装与使用】

用python解析pdf中的文本与表格【pdfplumber的安装与使用】

作者头像
blmoistawinde
发布2019-10-30 18:18:48
4.7K0
发布2019-10-30 18:18:48
举报
文章被收录于专栏:润风拂过存甘霖

我们接触到的很多文档资料都是以pdf格式存在的,比如:论文,技术文档,标准文件,书籍等。pdf格式使得用机器从中提取信息格外困难。

为了解决这个问题,我找到了几种解决方案,最后选择了python上的pdfplumber库,安装和使用都相对比较方便,效果也还不错,所以下面介绍这个库的安装与使用。

安装

我的电脑配置环境: Win10+python3.6 和许多库一样,其基本安装只需要pip就可以了。

pip install pdfplumber

不过本库还提供了图形Debug功能,可以获得PDF页面的截图,并且用方框框起识别到的文字或表格,帮助判断PDF的识别情况,并且进行配置的调整。【具体例子在后面附上。】

要使用这个功能,还需要安装ImageMagick (特别注意,是6.X版本而不是最新的7.X版本。下载地址如下:https://legacy.imagemagick.org/script/binary-releases.php#windows

按照官网的指示,理论上安装了这个就可以了,不过,我在使用to_image函数输出图片时,遇到了DelegateException。后来发现,还需要安装另一个软件才能够解决问题。 GhostScript: https://www.ghostscript.com/download/gsdnld.html 【注意,一定要下载32位版本,哪怕Windows和python的版本是64位的。】 然后就大功告成了!

基本使用

本库最重要的应用是提取页面上的文本和表格,用法如下:

代码语言:javascript
复制
import pdfplumber
import pandas as pd

with pdfplumber.open("path/to/file.pdf") as pdf:
    first_page = pdf.pages[0]
    # 获取文本,直接得到字符串,包括了换行符【与PDF上的换行位置一致,而不是实际的“段落”】
    print(first_page.extract_texts()) 
    # 获取本页全部表格,也可以使用extract_table()获得单个表格
    for table in p0.extract_tables(): 
        #得到的table是嵌套list类型,转化成DataFrame更加方便查看和分析 
        df = pd.DataFrame(table[1:], columns=table[0]) 
        print(df)

pdfplumber还可以获得页面上的所有单词、直线、方格、乃至曲线的位置信息,具体可以看看官网的说明:https://github.com/jsvine/pdfplumber

图形展示

最后,附上官网的一个示例jupyter notebook,从这个例子中可以看到其图形展示的功能和更多的用法: src="https://nbviewer.jupyter.org/github/jsvine/pdfplumber/blob/master/examples/notebooks/extract-table-nics.ipynb" width="720" height="2000">

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2018/08/25 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 安装
  • 基本使用
  • 图形展示
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档