PDF的格式不是规范的,很多情况下没有逻辑结构,不能自适应页面大小的调整。PDFMiner是通过尝试猜测PDF的布局来重建其结构,有时候效果并不理想。

import importlib
import sys
import timeimportlib.reload(sys)
time1 = time.time()import os.path
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 PDFTextExtractionNotAlloweddef parse(pdf_path,txt_path):'''解析PDF文本,并保存到TXT文件中'''fp = open(text_path,'rb')# pdf1 = urlopen('http://www.tencent.com/20160321.pdf')#用文件对象创建一个PDF文档分析器parser = PDFParser(fp)#创建一个PDF文档doc = PDFDocument()#连接分析器,与文档对象parser.set_document(doc)doc.set_parser(parser)#提供初始化密码,如果没有密码,就创建一个空的字符串doc.initialize()#检测文档是否提供txt转换,不提供就忽略if not doc.is_extractable:raise PDFTextExtractionNotAllowedelse:#创建PDF,资源管理器,来共享资源rsrcmgr = PDFResourceManager()#创建一个PDF设备对象laparams = LAParams()device = PDFPageAggregator(rsrcmgr,laparams=laparams)#创建一个PDF解释其对象interpreter = PDFPageInterpreter(rsrcmgr,device)#循环遍历列表,每次处理一个page内容# doc.get_pages() 获取page列表for page in doc.get_pages():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(txt_path,'a') as f:results = x.get_text()print(results)f.write(results  +"\n")if __name__ == '__main__':pdf_path = './test.pdf'txt_path = './test.txt'parse(pdf_path,txt_path)time2 = time.time()print("总共消耗时间为:",time2-time1)

上述代码只能解析正常的PDF内容,在实际应用场景中,很多PDF文档可能是加密的,如何处理解密的PDF文件,也是我们需要get的技能。

pydf2这个库能够实现对PDF文件进行加密和解密。

PDFMiner:python 读取 pdf 内容相关推荐

  1. Python读取PDF内容

    1,引言 晚上翻看<Python网络数据采集>这本书,看到读取PDF内容的代码,想起来前几天集搜客刚刚发布了一个抓取网页pdf内容的抓取规则,这个规则能够把pdf内容当成html来做网页抓 ...

  2. python读取pdf内容转word_Python实现PDF转Word

    "阅读此篇需要三分钟" 首先来看看来个PDF文件 我们来选择其中一个论文摘要: 使用我们的python代码转化后: 是不是很神奇? 现在网络上大部分的PDF转Word都是收费的,基 ...

  3. python读取pdf内容转word_【python】python实现PDF转word

    又是美好的一天,如果大家因为PDF转word而烦恼的话可以尝试用用Python的PDFMiner3K,这是一个非常好用的库,下面是把任意PDF读成字符串,然后用stingio转化成文件对象: #!/u ...

  4. python爬虫读取pdf_Python读取PDF内容

    1,引言 晚上翻看<Python网络数据采集>这本书,看到读取PDF内容的代码,想起来前几天集搜客刚刚发布了一个抓取网页pdf内容的抓取规则,这个规则能够把pdf内容当成html来做网页抓 ...

  5. python读取pdf文件_深入学习python解析并读取PDF文件内容的方法

    这篇文章主要学习了python解析并读取PDF文件内容的方法,包括对学习库的应用,python2.7和python3.6中python解析PDF文件内容库的更新,包括对pdfminer库的详细解释和应 ...

  6. Python读取PDF文档(或TXT)

    字符串在Python内部的表示是Unicode编码,首先我们来认识Python中encode()和decode()的作用与区别: 在做编码转换时,通常需要以unicode作为中间编码,即先将其他编码的 ...

  7. python读取pdf表格_Python使用Tabula提取PDF表格数据

    今天遇到一个批量读取pdf文件中表格数据的需求,样式大体是以下这样: python读取PDF无非就是三种方式(我所了解的),pdfminer.pdf2htmlEX 和 Tabula.综合考虑后,选择了 ...

  8. Python 读取 PDF 信息插入 Word 文档

    Python 读取 PDF 信息插入 Word 文档 思路 PDFMiner模块 docx-mailmerge 模块 回顾 代码下载 Hello,上个周末没能搞事情,被一个代码需求给绊住了:朋友在平时 ...

  9. 使用Python读取pdf文件

    学习python,不用再为pdf无法转换而烦恼~~~ 下面我们介绍python读取pdf文件(主要是针对文字部分) 1.打开环境 2.安装pdfminer3k包 可以使用jupyter noteboo ...

最新文章

  1. Apache通过配置.htaccess文件禁止访问.git、.svn等目录
  2. 如何用python画组合图形_python_matplotlib画组合图
  3. 信息系统项目管理师:第1章:信息化与信息系统(3)-重点汇总
  4. java 泛型详解-绝对是对泛型方法讲解
  5. 前端可视化编程:liveReload安装,sublime 3
  6. 一本介绍C指针的书--指针和结构体5.1
  7. Python中的条件语句(if,if ... else,if ... elif ... else和嵌套的if)
  8. 线性存储的最短平均检索时间(洛谷P1253题题解,Java语言描述)
  9. 机器学习实战(七)线性回归(Linear Regression)
  10. 实用的摩斯编码(二)
  11. [华为机试真题][2014]63.等式变换
  12. Science Word安装教程附下载链接
  13. 知乎热议:27岁没文凭、想自学编程,有机会成为程序员吗?互联网风口一去不复返了吗?
  14. C++中局部变量和全局变量的存储位置和内存回收机制
  15. hive的环境搭建,以及简单使用-01
  16. 我的世界电脑正版怎么开服务器,我的世界手机版开服器怎么用 开服务器方法...
  17. 京东 App 鸿蒙版上架华为应用商店
  18. 水安ABC考试多选练习题库(10)
  19. shell一键生成密钥脚本
  20. 经典好文!手把手教你写Android项目文档,小白也能看明白

热门文章

  1. 何可欣(为奥运冠军名字作诗)
  2. C C++面试常问简答题(2)
  3. 第一次收到这么用心的感谢信
  4. 我和蓝牙BT,BLE有一腿
  5. 用单链表实现一个队列
  6. SystemTray.cpp
  7. python刘卫国实验题_MATLAB 程序设计与应用(刘卫国版)习题答案3-4
  8. 1+X web中级 Laravel学习笔记——查询构造器简介及新增、更新、删除、查询数据
  9. pip install时发生raise ReadTimeoutError(self._pool, None, 'Read timed out.')的解决方案
  10. 天池 在线编程 最大子树(自底向上)