python基于pdfminer庫提取pdf文字代碼實(shí)例
安裝pdfminer 庫
windows 下安裝pdfminer3k
pip install pdfminer3k
Liunx 下安裝pdfminer
pip install pdfminer
代碼
from pdfminer.pdfparser import PDFParser, PDFDocument from pdfminer.converter import PDFPageAggregator from pdfminer.layout import LAParams, LTTextBoxHorizontal from pdfminer.pdfinterp import PDFTextExtractionNotAllowed, PDFResourceManager, PDFPageInterpreter def pdfParse(path): """ pdf文字提取 :param path:文件路徑 :return: 每頁結(jié)果列表 """ fp = open(path, 'rb') # 以二進(jìn)制讀模式打開 # 用文件對象來創(chuàng)建一個(gè)pdf文檔分析器 praser = PDFParser(fp) # 創(chuàng)建一個(gè)PDF文檔 doc = PDFDocument() # 連接分析器 與文檔對象 praser.set_document(doc) doc.set_parser(praser) # 提供初始化密碼 # 如果沒有密碼 就創(chuàng)建一個(gè)空的字符串 doc.initialize() # 檢測文檔是否提供txt轉(zhuǎn)換,不提供就忽略 if not doc.is_extractable: raise PDFTextExtractionNotAllowed else: # 創(chuàng)建PDf 資源管理器 來管理共享資源 rsrcmgr = PDFResourceManager() # 創(chuàng)建一個(gè)PDF設(shè)備對象 laparams = LAParams() device = PDFPageAggregator(rsrcmgr, laparams=laparams) # 創(chuàng)建一個(gè)PDF解釋器對象 interpreter = PDFPageInterpreter(rsrcmgr, device) #每頁文字內(nèi)容 results = [] # 循環(huán)遍歷列表,每次處理一個(gè)page的內(nèi)容 for page in doc.get_pages(): # doc.get_pages() 獲取page列表 interpreter.process_page(page) # 接受該頁面的LTPage對象 layout = device.get_result() # 這里layout是一個(gè)LTPage對象 里面存放著 這個(gè)page解析出的各種對象 一般包括LTTextBox, LTFigure, LTImage, LTTextBoxHorizontal 等等 想要獲取文本就獲得對象的text屬性, for x in layout: if isinstance(x, LTTextBoxHorizontal): results.append(x.get_text()) return results
該庫是根據(jù) 迭代pdf每一頁 進(jìn)行文字提取, 也可以識(shí)別判斷頁碼的功能
另外還有一個(gè)pypdf2 庫也可以識(shí)別但是感覺不如這個(gè)準(zhǔn)確
以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
Python中斷點(diǎn)調(diào)試pdb包的用法詳解
pdb(python debugger) 是 python 中的一個(gè)命令行調(diào)試包,為 python 程序提供了一種交互的源代碼調(diào)試功能,下面就跟隨小編一起學(xué)習(xí)一下它的具體使用吧2024-01-01Python自定義函數(shù)的創(chuàng)建、調(diào)用和函數(shù)的參數(shù)詳解
這篇文章主要介紹了Python自定義函數(shù)的創(chuàng)建、調(diào)用和函數(shù)的參數(shù)、變量作用域等常見問題,需要的朋友可以參考下2014-03-03Python實(shí)現(xiàn)雙進(jìn)程防止單點(diǎn)故障實(shí)例深度探究
在分布式系統(tǒng)中,確保系統(tǒng)的高可用性是至關(guān)重要的,本文將深入探討如何使用Python實(shí)現(xiàn)雙進(jìn)程自我保護(hù)機(jī)制,以應(yīng)對單點(diǎn)故障,確保系統(tǒng)穩(wěn)定運(yùn)行,將通過詳實(shí)的示例代碼,介紹雙進(jìn)程自我保護(hù)的原理、實(shí)現(xiàn)步驟以及可能遇到的挑戰(zhàn)2024-01-01基于Python實(shí)現(xiàn)微信自動(dòng)回復(fù)功能
這篇文章主要為大家詳細(xì)介紹了Python如何通過WechatPCAPI來實(shí)現(xiàn)微信自動(dòng)回復(fù)的功能,文中的示例代碼講解詳細(xì),快跟隨小編一起動(dòng)手嘗試一下2022-06-06python 實(shí)現(xiàn)Requests發(fā)送帶cookies的請求
這篇文章主要介紹了python 實(shí)現(xiàn)Requests發(fā)送帶cookies請求的方法,幫助大家更好的理解和使用python,感興趣的朋友可以了解下2021-02-02