python学习笔记之读取pdf文件库pdfminer

python学习笔记之读取pdf文件库pdfminer

上一节中介绍了抽取PDF文本及表格的库pdfplumber,今天介绍另外一个PDF解析库:pdfminer

安装
pip install pdfminer3k
 
# 或者利用国内镜像源来获取
pip install -i https://pypi.tuna.tsinghua.edu.cn/simple pdfminer3k
注意:python2中是pdfminer,python3中是pdfminer3k

读取PDF文本
在网上搜了一圈的资料,实现代码如下:

from pdfminer.pdfparser import PDFParser, PDFDocument
from pdfminer.pdfinterp import PDFResourceManager, PDFPageInterpreter
from pdfminer.converter import PDFPageAggregator
from pdfminer.layout import LAParams, LTTextBox
from pdfminer.pdfinterp import PDFTextExtractionNotAllowed
 
# 用文件对象来创建一个pdf文档分析器
praser = PDFParser(open('浪潮之巅.pdf','rb'))
 
# 创建一个PDF文档
doc = PDFDocument()
 
# 连接分析器与文档对象
praser.set_document(doc)
doc.set_parser(praser)
 
# 提供初始化密码,如果没有密码,就创建一个空的字符串
doc.initialize()
 
# 检查文档是否可以转成TXT,如果不可以就忽略
if not doc.is_extractable:
    raise PDFTextExtractionNotAllowed
else:
    #创建PDF资源管理器,来管理共享资源
    rsrcmagr = PDFResourceManager()
    #创建一个PDF设备对象
    laparams = LAParams()
    #将资源管理器和设备对象聚合
    device = PDFPageAggregator(rsrcmagr, laparams=laparams)
    #创建一个PDF解释器对象
    interpreter = PDFPageInterpreter(rsrcmagr, device)
 
    #循环遍历列表,每次处理一个page内容
    #doc.get_pages()获取page列表
    for pg in doc.get_pages():
        interpreter.process_page(pg)
        #接收该页面的LTPage对象
        layout = device.get_result()
        #这里的layout是一个LTPage对象 里面存放着page解析出来的各种对象
        #一般包括LTTextBox,LTFigure,LTImage,LTTextBoxHorizontal等等一些对像
        for x in layout:
            if (isinstance(x,LTTextBox)): # 网上是判断LTTextBoxHorizontal,而在我写代码的时候,只能判断LTTextBox
                print(x.get_text())
输出如下:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值