python抽取pdf中内容

系统 1373 0

这两天一直在windows上做用python(版本是3.6)抽取pdf中内容的东西,主要就是从pdf中提取出里面的字体和表格内容。尝试了好些个库,现在算是找到比较符合我需求(比较好用)的pdf解析的了。在这个过程中,用了以下几个库:

  1. PDFminer

    1. PDFminer算是一个还算不错的吧,安装直接用pip安装就行。如下:

                          
                            pip install pdfminer3k
                          
                        

      它这个对pdf中内容做了好些个对象,用这些对象来存储不同的信息,比如表格有LTFigure对象存储、文本有LTTextBoxHorizontal对象来存储。对于文本的提取,基本上都是通过画框提取的,所以提取出的text都是一行一行返回的。这样的后果就是说不清明明是一句话,却被分成两行或三行显示。比如我现在做的,对行、句子比较敏感,不能将所有的行连在一起,所以在提取出结果后,还需要对结果进行处理,以达到我们的目的。

    2. 看它说明应该是可以提取出里面表格的,但无论在哪也没找到他这个表格要怎么操作,怎么把里面内容拿出来,所以就没有用它,转而去寻找其它的工具。

  2. tabula

    1. 在网上看大伙对这个都还挺推崇的,是专门用来提取pdf中表格的一个工具库。安装的话,也是直接使用pip即可,如下:

                          
                            pip install tabula-py
                          
                        

      因为它是依赖于java的,所以要是电脑上没有java环境的话,需要配置一下,将java的所在的安装目录加到环境变量PATH中。

    2. 但是,怎么说呢,不知道我使用的有问题还是怎么样,表格中几个格合并成的单元格读取的时候,会出问题。

  3. pdfplumber

    1. 这个是我现在用的,个人觉得还是比较好用的。对于pdf中文本的抽取,原理还有效果跟PDFminer差不多。对于某一页中文本读取的话,直接调用pdfplumber.extract_text()就可以了。对于表格的话,也是直接调用extract_tables()就可以找到该页中所有的表格中的内容,并且可以直接转换成padas中DataFrame的形式,就我现在测试的来看,结果基本没有差错。表格提取中也可以自己设置一些参数什么的,比如设置表格的分割线是什么类型什么的,很是方便。表格提取的问题跟文本的相似,要是一个表格在两页或更多页的话,他会把这一个表格读成多个,所以需要我们在得到结果后,在对结果处理,把表格连接起来。

    2. 安装的话,相比起来稍微麻烦点,需要先安装两个软件:ImageMagic和Ghstscript。

      1. ImageMagic可以从下载链接下载,16位的更精确些,但消耗的计算机资源也相对大一些,8位的差一些,可以自己选择,但是一定要下载的是6.X的版本。

      2. Ghostscript可以从下载链接下载,无论自己电脑是32还是64位的,都下载安装32位的

      3. 上面两个安装结束后,就可以直接通过pip安装pdfplumber了。

                                
                                  pip install pdfplumber
                                
                              

         


更多文章、技术交流、商务合作、联系博主

微信扫码或搜索:z360901061

微信扫一扫加我为好友

QQ号联系: 360901061

您的支持是博主写作最大的动力,如果您喜欢我的文章,感觉我的文章对您有帮助,请用微信扫描下面二维码支持博主2元、5元、10元、20元等您想捐的金额吧,狠狠点击下面给点支持吧,站长非常感激您!手机微信长按不能支付解决办法:请将微信支付二维码保存到相册,切换到微信,然后点击微信右上角扫一扫功能,选择支付二维码完成支付。

【本文对您有帮助就好】

您的支持是博主写作最大的动力,如果您喜欢我的文章,感觉我的文章对您有帮助,请用微信扫描上面二维码支持博主2元、5元、10元、自定义金额等您想捐的金额吧,站长会非常 感谢您的哦!!!

发表我的评论
最新评论 总共0条评论