毕业设计需要用到自然语言处理,需要将PDF转化为文本进行提取信息。

首先安装 pdfminer3k (在Python3下进行安装,python2.7),使用pip安装:pip install pdfminer3k

(如果同时安装了python3.6 和 python 2.7 使用

pip3 install pdfminer3k
或者
py -3 -m pip install pdfminer3k

进行提取本地PDF中文字:

# encoding: utf-8

"""
@file: prase_pdf.py
@time: 2018/4/19
"""
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 ="C:\\Users\\admin\\Desktop\\t.pdf"
def parse():
    fp = open(path, 'rb') # 以二进制读模式打开
    #用文件对象来创建一个pdf文档分析器
    praser = PDFParser(fp)
    # 创建一个PDF文档
    doc = PDFDocument()
    # 连接分析器 与文档对象
    praser.set_document(doc)
    doc.set_parser(praser)

# 提供初始化密码
    # 如果没有密码 就创建一个空的字符串
    doc.initialize()

# 检测文档是否提供txt转换,不提供就忽略
    if not doc.is_extractable:
        raise PDFTextExtractionNotAllowed
    else:
        # 创建PDf 资源管理器 来管理共享资源
        rsrcmgr = PDFResourceManager()
        # 创建一个PDF设备对象
        laparams = LAParams()
        device = PDFPageAggregator(rsrcmgr, laparams=laparams)
        # 创建一个PDF解释器对象
        interpreter = PDFPageInterpreter(rsrcmgr, device)

# 循环遍历列表,每次处理一个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'C:\Users\admin\Desktop\1.txt', 'a',encoding='utf-8') as f:
                        results = x.get_text()
                        print(results)
                        f.write(results + '\n')

if __name__ == '__main__':

parse()

打印结果(桌面【或者你存储的位置】上会有一个.txt文档):

如果直接在线的文档可以这样做:

以上代码 import 模块中,加入

from urllib.request import urlopen
from urllib.request import Request

声明全局的用户代理:

user_agent = ['Mozilla/5.0 (Windows NT 10.0; WOW64)', 'Mozilla/5.0 (Windows NT 6.3; WOW64)','Mozilla/5.0 (Windows NT 6.1; WOW64; rv:54.0) Gecko/20100101 Firefox/54.0','Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.11 (KHTML, like Gecko) Chrome/23.0.1271.64 Safari/537.11','Mozilla/5.0 (Windows NT 6.3; WOW64; Trident/7.0; rv:11.0) like Gecko','Mozilla/5.0 (Windows NT 5.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/28.0.1500.95 Safari/537.36','Mozilla/5.0 (Windows NT 6.1; WOW64; Trident/7.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; .NET4.0C; rv:11.0) like Gecko)','Mozilla/5.0 (Windows; U; Windows NT 5.2) Gecko/2008070208 Firefox/3.0.1','Mozilla/5.0 (Windows; U; Windows NT 5.1) Gecko/20070309 Firefox/2.0.0.3','Mozilla/5.0 (Windows; U; Windows NT 5.1) Gecko/20070803 Firefox/1.5.0.12','Opera/9.27 (Windows NT 5.2; U; zh-cn)','Mozilla/5.0 (Macintosh; PPC Mac OS X; U; en) Opera 8.0','Opera/8.0 (Macintosh; PPC Mac OS X; U; en)','Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.1.12) Gecko/20080219 Firefox/2.0.0.12 Navigator/9.0.0.6','Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.1; Win64; x64; Trident/4.0)','Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.1; Trident/4.0)','Mozilla/5.0 (compatible; MSIE 10.0; Windows NT 6.1; WOW64; Trident/6.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; InfoPath.2; .NET4.0C; .NET4.0E)','Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.1 (KHTML, like Gecko) Maxthon/4.0.6.2000 Chrome/26.0.1410.43 Safari/537.1 ','Mozilla/5.0 (compatible; MSIE 10.0; Windows NT 6.1; WOW64; Trident/6.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; InfoPath.2; .NET4.0C; .NET4.0E; QQBrowser/7.3.9825.400)','Mozilla/5.0 (Windows NT 6.1; WOW64; rv:21.0) Gecko/20100101 Firefox/21.0 ','Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.1 (KHTML, like Gecko) Chrome/21.0.1180.92 Safari/537.1 LBBROWSER','Mozilla/5.0 (compatible; MSIE 10.0; Windows NT 6.1; WOW64; Trident/6.0; BIDUBrowser 2.x)','Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/536.11 (KHTML, like Gecko) Chrome/20.0.1132.11 TaoBrowser/3.0 Safari/536.11']

 request = Request(url=_path, headers={'User-Agent': random.choice(user_agent)})  # 随机从user_agent列表中抽取一个元素fp = urlopen(request) #打开在线PDF文档

主函数:添加pdf的连接

利用pdfminer3k 使用python语言提取PDF中的文本相关推荐

  1. php取tet文件内容,PHP中使用PDFlib TET提取PDF中的文本

    本文介绍了如何在PHP中使用PDFlib TET提取PDF中的文本: /* 全局参数表*/ $globaloptlist = "searchpath=../../../resource/cm ...

  2. 三种方法,用Python轻松提取PDF中的全部图片

    作者 | 陈熹.刘早起 来源 | 早起Python 头图 | 下载于视觉中国 有时我们需要将一份或者多份PDF文件中的图片提取出来,如果采取在线的网站实现的话又担心图片泄漏,手动操作又觉得麻烦,其实用 ...

  3. 三种方法,Python轻松提取PDF中全部图片

    有时我们需要将一份或者多份PDF文件中的图片提取出来,如果采取在线的网站实现的话又担心图片泄漏,手动操作又觉得麻烦,其实用Python也可以轻松搞定! 今天就跟大家系统分享几种Python提取 PDF ...

  4. python中提取pdf文件某些页_人工智能|Python提取PDF中的文本并朗读

    题前的话 之前有老师在群里推荐这个,我看了一眼觉得还是蛮有趣的,然后就忘了--昨天又看到这个<宅男福利!我50行Python代码让小姐姐给你读Pdf>,今天于是开始自己尝试,谁知道pdfp ...

  5. 【办公自动化】使用Python一键提取PDF中的表格到Excel(文末送书5本)

  6. python批量提取pdf的数据_Python批量提取PDF文件中文本的脚本

    本文实例为大家分享了Python批量提取PDF文件中文本的具体代码,供大家参考,具体内容如下 首先需要执行命令pip install pdfminer3k来安装处理PDF文件的扩展库. import ...

  7. python爬取pdf教程_#如何利用Python抓取PDF中的某些内容#python爬取pdf教程

    如何利用Python抓取PDF中的某些内容 学生每天要学习,工作者要工作,家庭主妇每都要务.不论做什么,都有着相应的操作流同样就会有操作技巧.学生运用技巧学习才不会累,学得还会更快更多:工作者掌握技巧 ...

  8. python分析pdf年报 货币现金_如何用Python从大量pdf 中提取表格中的数据进行分析?...

    根据一楼答案@森林的建议 说说我的处理经验 我也是借助开源项目tabula,不得不说tabula的功能确实很强大. 我是用Python来处理数据,但是没有用tabula-py,因为表格跨列跨行等情况比 ...

  9. python 如何批量提取文件中的字符_如何用Python批量提取PDF文本内容?

    本文为你展示,如何用Python把许多PDF文件的文本内容批量提取出来,并且整理存储到数据框中,以便于后续的数据分析. 问题 最近,读者们在后台的留言,愈发五花八门了. 写了几篇关于自然语言处理的文章 ...

  10. python 两种提取pdf中图片的包

    项目需求,提取pdf中图片,找半天的结果 1.fitz (我没找到元素定位的方法) pip install pymupdf import fitzdef extract_pic_from_pdf(pd ...

最新文章

  1. 51单片机教程哪个好?
  2. LoadRunner测试问题及解决方法总结
  3. OllyDbg完全教程
  4. FPGA构造spi时序——AD7176为例(转)
  5. 06-BCD计数器设计与应用——小梅哥FPGA设计思想与验证方法视频教程配套文档
  6. log4j.xml引用Javaweb项目中配置文件的参数
  7. pandas处理csv
  8. StudentManager-java+mysql学生管理系统
  9. centOS 6.0无法运行dump指令的解决方法
  10. 【转】freetextbox的ToolBarLayout属性设置
  11. 如何查看linux下的环境变量
  12. echart高级使用_Vue:在Vue中使用echarts
  13. 二叉树:你真的会翻转二叉树么?
  14. 基于RV1126平台imx291分析 --- media注册
  15. python破解excel进入密码(密码字典)
  16. java内嵌浏览器的几种方式
  17. delphi计算机语言排名,2020年3月TIOBE编程语言排行榜 Java继续蝉联榜首
  18. EXCEL日期格式不一致设置统一显示格式的方法
  19. 澳洲留学生面经,Java后端,阿里、头条、百度、华为、微策略
  20. 适合长期电脑办公人群的养生小技巧

热门文章

  1. 程序员集体意识大爆发:996背后的深问题
  2. BOM差异对比——Spreadsheet Compare
  3. AGV小车导航控制 研一《智能控制》课程文献阅读作业
  4. windows安装配置jdk1.8
  5. 解决Mac自动切换输入法
  6. 揭穿内存厂家“谎言”,实测内存带宽真实表现
  7. python中def fun()是什么意思_python def 参数
  8. 对象图(Object Diagram)
  9. 减轻使用者的从众心理压力 知名社群网站将隐藏赞数
  10. 【009】Excel宏编程相关封装模块(边框细线、边框粗线、列宽、行高)_002_#VBA