這兩天一直在windows上做用python(版本是3.6)抽取pdf中內(nèi)容的東西,主要就是從pdf中提取出里面的字體和表格內(nèi)容。嘗試了好些個(gè)庫,現(xiàn)在算是找到比較符合我需求(比較好用)的pdf解析的了。在這個(gè)過程中,用了以下幾個(gè)庫:
-
PDFminer
-
PDFminer算是一個(gè)還算不錯(cuò)的吧,安裝直接用pip安裝就行。如下:
pip install pdfminer3k
它這個(gè)對(duì)pdf中內(nèi)容做了好些個(gè)對(duì)象,用這些對(duì)象來存儲(chǔ)不同的信息,比如表格有LTFigure對(duì)象存儲(chǔ)、文本有LTTextBoxHorizontal對(duì)象來存儲(chǔ)。對(duì)于文本的提取,基本上都是通過畫框提取的,所以提取出的text都是一行一行返回的。這樣的后果就是說不清明明是一句話,卻被分成兩行或三行顯示。比如我現(xiàn)在做的,對(duì)行、句子比較敏感,不能將所有的行連在一起,所以在提取出結(jié)果后,還需要對(duì)結(jié)果進(jìn)行處理,以達(dá)到我們的目的。
-
看它說明應(yīng)該是可以提取出里面表格的,但無論在哪也沒找到他這個(gè)表格要怎么操作,怎么把里面內(nèi)容拿出來,所以就沒有用它,轉(zhuǎn)而去尋找其它的工具。
-
-
tabula
-
在網(wǎng)上看大伙對(duì)這個(gè)都還挺推崇的,是專門用來提取pdf中表格的一個(gè)工具庫。安裝的話,也是直接使用pip即可,如下:
pip install tabula-py
因?yàn)樗且蕾囉趈ava的,所以要是電腦上沒有java環(huán)境的話,需要配置一下,將java的所在的安裝目錄加到環(huán)境變量PATH中。
-
但是,怎么說呢,不知道我使用的有問題還是怎么樣,表格中幾個(gè)格合并成的單元格讀取的時(shí)候,會(huì)出問題。
-
-
pdfplumber
-
這個(gè)是我現(xiàn)在用的,個(gè)人覺得還是比較好用的。對(duì)于pdf中文本的抽取,原理還有效果跟PDFminer差不多。對(duì)于某一頁中文本讀取的話,直接調(diào)用pdfplumber.extract_text()就可以了。對(duì)于表格的話,也是直接調(diào)用extract_tables()就可以找到該頁中所有的表格中的內(nèi)容,并且可以直接轉(zhuǎn)換成padas中DataFrame的形式,就我現(xiàn)在測試的來看,結(jié)果基本沒有差錯(cuò)。表格提取中也可以自己設(shè)置一些參數(shù)什么的,比如設(shè)置表格的分割線是什么類型什么的,很是方便。表格提取的問題跟文本的相似,要是一個(gè)表格在兩頁或更多頁的話,他會(huì)把這一個(gè)表格讀成多個(gè),所以需要我們?cè)诘玫浇Y(jié)果后,在對(duì)結(jié)果處理,把表格連接起來。
-
安裝的話,相比起來稍微麻煩點(diǎn),需要先安裝兩個(gè)軟件:ImageMagic和Ghstscript。
-
ImageMagic可以從下載鏈接下載,16位的更精確些,但消耗的計(jì)算機(jī)資源也相對(duì)大一些,8位的差一些,可以自己選擇,但是一定要下載的是6.X的版本。
-
Ghostscript可以從下載鏈接下載,無論自己電腦是32還是64位的,都下載安裝32位的
-
上面兩個(gè)安裝結(jié)束后,就可以直接通過pip安裝pdfplumber了。
pip install pdfplumber
?
-
-
更多文章、技術(shù)交流、商務(wù)合作、聯(lián)系博主
微信掃碼或搜索:z360901061

微信掃一掃加我為好友
QQ號(hào)聯(lián)系: 360901061
您的支持是博主寫作最大的動(dòng)力,如果您喜歡我的文章,感覺我的文章對(duì)您有幫助,請(qǐng)用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點(diǎn)擊下面給點(diǎn)支持吧,站長非常感激您!手機(jī)微信長按不能支付解決辦法:請(qǐng)將微信支付二維碼保存到相冊(cè),切換到微信,然后點(diǎn)擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對(duì)您有幫助就好】元
