关键词文章采集源码(我找份文档还写个程序,写完程序我都找到了)
优采云 发布时间: 2021-12-31 05:19关键词文章采集源码(我找份文档还写个程序,写完程序我都找到了)
昨天,我的傻女朋友在一堆50多份文件中花了一个下午,才找到一句话的文件。难得糊涂,但是考虑到很多朋友同事在工作和生活中都有这种“糊涂”的行为,或者在一堆文件里找一个文件,我们不得不买一堆Excel来找数据,等#印刷来了#,如果你学编程,懂Python,你的效率会大大提高。有人说,我找个文件,写个程序?写完程序后,我找到了一切。但是下次找的时候,你会发现你有一个程序,就是坐着喝茶等结果。效率可想而知。显然,21世纪最昂贵的东西是数据,但知道访问数据是一项必要的技能。
世界上的好东西都是懒人发明的
我的傻女人
今天,我们的目标是在一堆PDF文档中一步一步地找到一个带有某个关键字/句子的文档。
一个PDF文档阅读
我们要实现的第一步显然是阅读PDF文档。有多种方法可以阅读 PDF 文档。在 Python 中,我们习惯性地使用第三方库来提高效率。这里我们介绍几个PDF文档工具:
你一定很好奇,我为什么知道这些工具?明明我也不是万能的,直接在百度上下载Python PDF库就行了,无聊的时候可以多积累一些。我们选择PDFMiner来快速阅读PDF文档的内容。下面我们简单介绍一下PDFminer的安装过程:
cmd-pip 安装 pdfminer.six
如果你不知道 Python 是如何使用 pip 安装工具的,我们稍后会添加一些 Python 基础课程。
阅读PDF文档:
参考pdfminer库的官方文档:
完整安装开发文档编写的代码如下
参考官方文档实现代码
PDF页面的结构(详见官方在线文档):
一页PDF的文档结构
操作结果:
操作结果
此过程类似于打开每个 PDF 并查看其中的内容。接下来,我们将实现第二步。看到内容后,进行搜索匹配。
第二次搜索匹配
第一步是阅读PDF文档的内容。从逻辑上讲,第二步是将阅读的内容与我们需要查找的关键字/句子进行匹配,以找出哪个页面和行。我们使用正则表达式进行查询匹配。具体知识点可以参考Python教材文档。简单的逻辑是,正则表达式重新查询匹配,然后返回匹配结构。如果不是None,则输出页和行。然后退出
具体实现代码如下:
完整代码如下:
根据关键字匹配PDF文档
运行效果如下:(30秒内所有小于479页的PDF文档的匹配结果)
· 一般我们看的文档在50页以内,检索比较快,但是我们需要在一本书的PDF中找到一两句话或者关键词。这种检索方法比较具有可比性 慢慢地,我们可以采取一种相关性的方法来计算两个文本之间的熟悉程度。但是这个知识点是大数据发展起来的,我们后面会学习。
三实现文件夹下所有文档的自动匹配
根据上面的文本检索原理,我们下一步就是实现一个文件夹下所有文档的自动检索,这就是我们想要的。
第一步:读取文件夹中的所有PDF文件(包括子目录)
获取文件目录中的所有PDF路径
效果如下:
第二步,一一匹配检索PDF文档
封装代码如下:
运行结果如下(截图为检索两本书):
至此,我们基本实现了从一堆PDF文档中检索出对应关键字的文本和页码行并输出。显然,如果我们想要能够使用它,就必须在运行时输入path和keyword这两个变量。然后我们就实现下一步了,运行时提示输入文件夹路径和要检索的关键字,打包成EXE程序,方便在Windows平台上运行。
四个输入流和程序包EXE
提示输入文件夹路径,提示输入要检索的词,提示确认启动:
代码显示如下
运行结果如下:
到这里基本上我们的程序就完成了,但是现在还是一个py文件,不是普通人使用的EXE程序。接下来,我们将 py 文件转换为 EXE 程序。
第一步是安装pyinstaller
cmd-pip 安装 pyinstaller
第二步进入文件目录,执行pyinstaller -F xxx.py
第三步是当前目录dist文件夹下的EXE文件
双击运行。发现错误:
查看文档发现pyinstaller不支持Python3.6版本,替换为python3.3包或者
要打包,请按如下方式运行 exe:
后面我们继续学习,Python数据采集。从海量的PDF数据中提取你想要的数据,就是提取效率和财富。需要源码的请评论,谢谢关注!