Python 3.6 中使用pdfminer解析pdf文件的實現
更新時間:2019年09月25日 11:13:54 作者:W-大泡泡
這篇文章主要介紹了Python 3.6 中使用pdfminer解析pdf文件的實現,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
所使用python環(huán)境為最新的3.6版本
一、安裝pdfminer模塊
安裝anaconda后,直接可以通過pip安裝
pip install pdfminer3k
如上圖所示安裝成功。
二、在IDE中進行編碼
#!/usr/bin/env python # encoding: utf-8 """ @author: wugang @software: PyCharm @file: prase_pdf.py @time: 2017/3/3 0003 11:16 """ import sys import importlib importlib.reload(sys) from pdfminer.pdfparser import PDFParser,PDFDocument from pdfminer.pdfinterp import PDFResourceManager, PDFPageInterpreter from pdfminer.converter import PDFPageAggregator from pdfminer.layout import LTTextBoxHorizontal,LAParams from pdfminer.pdfinterp import PDFTextExtractionNotAllowed ''' 解析pdf 文本,保存到txt文件中 ''' path = r'../../data/pdf/阿里巴巴Java開發(fā)規(guī)范手冊.pdf' def parse(): fp = open(path, 'rb') # 以二進制讀模式打開 #用文件對象來創(chuàng)建一個pdf文檔分析器 praser = PDFParser(fp) # 創(chuàng)建一個PDF文檔 doc = PDFDocument() # 連接分析器 與文檔對象 praser.set_document(doc) doc.set_parser(praser) # 提供初始化密碼 # 如果沒有密碼 就創(chuàng)建一個空的字符串 doc.initialize() # 檢測文檔是否提供txt轉換,不提供就忽略 if not doc.is_extractable: raise PDFTextExtractionNotAllowed else: # 創(chuàng)建PDf 資源管理器 來管理共享資源 rsrcmgr = PDFResourceManager() # 創(chuàng)建一個PDF設備對象 laparams = LAParams() device = PDFPageAggregator(rsrcmgr, laparams=laparams) # 創(chuàng)建一個PDF解釋器對象 interpreter = PDFPageInterpreter(rsrcmgr, device) # 循環(huán)遍歷列表,每次處理一個page的內容 for page in doc.get_pages(): # doc.get_pages() 獲取page列表 interpreter.process_page(page) # 接受該頁面的LTPage對象 layout = device.get_result() # 這里layout是一個LTPage對象 里面存放著 這個page解析出的各種對象 一般包括LTTextBox, LTFigure, LTImage, LTTextBoxHorizontal 等等 想要獲取文本就獲得對象的text屬性, for x in layout: if (isinstance(x, LTTextBoxHorizontal)): with open(r'../../data/pdf/1.txt', 'a') as f: results = x.get_text() print(results) f.write(results + '\n') if __name__ == '__main__': parse()
以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。