`
shuai1234
  • 浏览: 933027 次
  • 性别: Icon_minigender_1
  • 来自: 山西
社区版块
存档分类
最新评论

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

    博客分类:
  • java
 
阅读更多

我们接触到的很多文档资料都是以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位的。】 

然后就大功告成了!

 

基本使用

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

 

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)

1

2

3

4

5

6

7

8

9

10

11

12

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

 

图形展示

最后,附上官网的一个示例jupyter notebook,从这个例子中可以看到其图形展示的功能和更多的用法:

 

 

--------------------- 

作者:blmoistawinde 

来源:CSDN 

原文:https://blog.csdn.net/blmoistawinde/article/details/82051915 

版权声明:本文为博主原创文章,转载请附上博文链接!

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics