PDFMiner:python 读取 pdf 内容
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 内容相关推荐
- Python读取PDF内容
1,引言 晚上翻看<Python网络数据采集>这本书,看到读取PDF内容的代码,想起来前几天集搜客刚刚发布了一个抓取网页pdf内容的抓取规则,这个规则能够把pdf内容当成html来做网页抓 ...
- python读取pdf内容转word_Python实现PDF转Word
"阅读此篇需要三分钟" 首先来看看来个PDF文件 我们来选择其中一个论文摘要: 使用我们的python代码转化后: 是不是很神奇? 现在网络上大部分的PDF转Word都是收费的,基 ...
- python读取pdf内容转word_【python】python实现PDF转word
又是美好的一天,如果大家因为PDF转word而烦恼的话可以尝试用用Python的PDFMiner3K,这是一个非常好用的库,下面是把任意PDF读成字符串,然后用stingio转化成文件对象: #!/u ...
- python爬虫读取pdf_Python读取PDF内容
1,引言 晚上翻看<Python网络数据采集>这本书,看到读取PDF内容的代码,想起来前几天集搜客刚刚发布了一个抓取网页pdf内容的抓取规则,这个规则能够把pdf内容当成html来做网页抓 ...
- python读取pdf文件_深入学习python解析并读取PDF文件内容的方法
这篇文章主要学习了python解析并读取PDF文件内容的方法,包括对学习库的应用,python2.7和python3.6中python解析PDF文件内容库的更新,包括对pdfminer库的详细解释和应 ...
- Python读取PDF文档(或TXT)
字符串在Python内部的表示是Unicode编码,首先我们来认识Python中encode()和decode()的作用与区别: 在做编码转换时,通常需要以unicode作为中间编码,即先将其他编码的 ...
- python读取pdf表格_Python使用Tabula提取PDF表格数据
今天遇到一个批量读取pdf文件中表格数据的需求,样式大体是以下这样: python读取PDF无非就是三种方式(我所了解的),pdfminer.pdf2htmlEX 和 Tabula.综合考虑后,选择了 ...
- Python 读取 PDF 信息插入 Word 文档
Python 读取 PDF 信息插入 Word 文档 思路 PDFMiner模块 docx-mailmerge 模块 回顾 代码下载 Hello,上个周末没能搞事情,被一个代码需求给绊住了:朋友在平时 ...
- 使用Python读取pdf文件
学习python,不用再为pdf无法转换而烦恼~~~ 下面我们介绍python读取pdf文件(主要是针对文字部分) 1.打开环境 2.安装pdfminer3k包 可以使用jupyter noteboo ...
最新文章
- Apache通过配置.htaccess文件禁止访问.git、.svn等目录
- 如何用python画组合图形_python_matplotlib画组合图
- 信息系统项目管理师:第1章:信息化与信息系统(3)-重点汇总
- java 泛型详解-绝对是对泛型方法讲解
- 前端可视化编程:liveReload安装,sublime 3
- 一本介绍C指针的书--指针和结构体5.1
- Python中的条件语句(if,if ... else,if ... elif ... else和嵌套的if)
- 线性存储的最短平均检索时间(洛谷P1253题题解,Java语言描述)
- 机器学习实战(七)线性回归(Linear Regression)
- 实用的摩斯编码(二)
- [华为机试真题][2014]63.等式变换
- Science Word安装教程附下载链接
- 知乎热议:27岁没文凭、想自学编程,有机会成为程序员吗?互联网风口一去不复返了吗?
- C++中局部变量和全局变量的存储位置和内存回收机制
- hive的环境搭建,以及简单使用-01
- 我的世界电脑正版怎么开服务器,我的世界手机版开服器怎么用 开服务器方法...
- 京东 App 鸿蒙版上架华为应用商店
- 水安ABC考试多选练习题库(10)
- shell一键生成密钥脚本
- 经典好文!手把手教你写Android项目文档,小白也能看明白
热门文章
- 何可欣(为奥运冠军名字作诗)
- C C++面试常问简答题(2)
- 第一次收到这么用心的感谢信
- 我和蓝牙BT,BLE有一腿
- 用单链表实现一个队列
- SystemTray.cpp
- python刘卫国实验题_MATLAB 程序设计与应用(刘卫国版)习题答案3-4
- 1+X web中级 Laravel学习笔记——查询构造器简介及新增、更新、删除、查询数据
- pip install时发生raise ReadTimeoutError(self._pool, None, 'Read timed out.')的解决方案
- 天池 在线编程 最大子树(自底向上)