上一节中介绍了抽取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,而在我写代码的时候,只能判断LTTextBoxprint(x.get_text())

输出如下:

经过实现,利用pdfminer想要抽取PDF的文本内容,对比于包 pdfplumber ,pdfminer 有点过于复杂,不符合python的简介。

参考链接:

Python使用pdfminer解析PDF_光明~~~-CSDN博客_pdfminer

【Python 库】解析PDF文本及表格——pdfminer、tabula、pdfplumber 的用法及对比 - 丹枫无迹 - 博客园

python学习笔记之读取pdf文件库pdfminer(二)相关推荐

  1. python学习笔记(五)字符串函数二

    原文链接:http://blog.svenapps.com/post/python-xue-xi-bi-ji/python-xue-xi-bi-ji-wu-zi-fu-chuan-han-shu-er ...

  2. python学习笔记:读取xyz文件

    在药学的Ai研发过程中,经常要制作清洗文件和处理各种文件格式.利用openBabel这样功能能够大大减轻转换过程的麻烦.然而偶然也需要应对一下场景下处理xyz文件抽取相关的坐标体系去计算小分子之间的作 ...

  3. Python学习笔记——openpyxl读取工作表的数据有效性设置信息

    今天在用openpyxl读取表格信息时,需要根据表格中单元格的数据有效性设置中的序列内容来进行下一步操作判断.但是对于如何获取该序列的字符串值一点也不了解,网上查找资料只找到用DataValidati ...

  4. PYTHON学习笔记之(一)2020.08

    PYTHON学习笔记之(一)2020.08 Python基础 数据类型 常见的列表.字典,以及元组.集合. 1 列表 list 1.1 列表转换字符串 stu = ['王一', '李二', '张三'] ...

  5. python 学习笔记 12 -- 写一个脚本获取城市天气信息

    近期在玩树莓派,前面写过一篇在树莓派上使用1602液晶显示屏,那么可以显示后最重要的就是显示什么的问题了. 最easy想到的就是显示时间啊,CPU利用率啊.IP地址之类的.那么我认为呢,假设可以显示当 ...

  6. Python学习笔记(六)

    1. IO编程 1.1 文件读写 1.2 StringIO和BytesIO 1.3 操作文件和目录 1.4 序列化 2. 进程和线程 2.1 多进程 2.2 多线程 2.3 ThreadLocal 2 ...

  7. Python 学习笔记(3)对txt文件的读与写操作(下)

    上一章节我们讨论了如何对txt文本文件进行读写操作,这一张将讨论如何进行二进制文件的写与读.<Python 学习笔记(3)对txt文件的读与写操作(上)>的链接如下https://blog ...

  8. OpenCV之Python学习笔记(1)(2): 图像的载入、显示和保存 图像元素的访问、通道分离与合并

    OpenCV之Python学习笔记 一直都在用Python+OpenCV做一些算法的原型.本来想留下发布一些文章的,可是整理一下就有点无奈了,都是写零散不成系统的小片段.现在看到一本国外的新书< ...

  9. python学习笔记(五岁以下儿童)深深浅浅的副本复印件,文件和文件夹

    python学习笔记(五岁以下儿童) 深拷贝-浅拷贝 浅拷贝就是对引用的拷贝(仅仅拷贝父对象) 深拷贝就是对对象的资源拷贝 普通的复制,仅仅是添加了一个指向同一个地址空间的"标签" ...

  10. Python学习笔记:Day 10 用户注册和登陆

    前言 最近在学习深度学习,已经跑出了几个模型,但Pyhton的基础不够扎实,因此,开始补习Python了,大家都推荐廖雪峰的课程,因此,开始了学习,但光学有没有用,还要和大家讨论一下,因此,写下这些帖 ...

最新文章

  1. matlab/simulink常见问题汇总
  2. Java的synchronized关键字:同步机制总结
  3. java定时线程池_java 定时器线程池(ScheduledThreadPoolExecutor)的实现
  4. 洛谷-P3396 哈希冲突 分块
  5. Serializer字段和选项
  6. 合并数组内的对象的数字
  7. 第一篇:centos7下svn的安装与卸载
  8. Mongodb系列:初识Mongodb
  9. SourceTree的使用
  10. Java线程池线程突然没了_70%人答不全!线程池中的一个线程异常了会被怎么处理?...
  11. 计算机系统的结构分类,图解计算机结构与系统分类!!
  12. 使用opencv转化图片格式
  13. 详解Guitar Pro 7小节的组织定义
  14. 一个古典App开发者的DApp开发之路
  15. 高端差分器电流检测电路
  16. 如何去除ul小圆点的html,html里面ul那个点怎么消
  17. Python爬虫新手教程:微医挂号网医生数据抓取
  18. mmdection介绍
  19. 2ASK的调制解调,编码解码,还有它的误码率,功率谱(语音信号的)
  20. 软考高项(信息系统项目管理师)考试复习方法总结

热门文章

  1. QwebSocket即时通信
  2. C/C++中的位运算
  3. mysql 8.0.3 rc_MySQL 8.0.3 RC 版即将发布,看看有哪些变化
  4. 学生学籍管理系统页面源代码html_学生信息管理系统-系统源代码
  5. C语言学习资料汇集 助你成为更好的程序员
  6. green: JRE + Tomcat + Mysql - JaveEE JTM0.9
  7. 微信机器人,微信聊天机器人搭建教程附源代码
  8. 发那科系统C语言执行器,FANUC NC Guide数控仿真系统 PMC梯形图模拟
  9. 软件开发入门自学指南
  10. Linux常用视频播放器