关键词文章采集源码(我找份文档还写个程序,写完程序我都找到了)

优采云 发布时间: 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数据中提取你想要的数据,就是提取效率和财富。需要源码的请评论,谢谢关注!

0 个评论

要回复文章请先登录注册


官方客服QQ群

微信人工客服

QQ人工客服


线