1. 程式人生 > >用python解析pdf中的文字與表格【pdfplumber的安裝與使用】

用python解析pdf中的文字與表格【pdfplumber的安裝與使用】

我們接觸到的很多文件資料都是以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)

pdfplumber還可以獲得頁面上的所有單詞、直線、方格、乃至曲線的位置資訊,具體可以看看官網的說明:https://github.com/jsvine/pdfplumber
---------------------
作者:blmoistawinde
來源:CSDN
原文:https://blog.csdn.net/blmoistawinde/article/details/82051915
版權宣告:本文為博主原創文章,轉載請附上博文連結!