前言
本文的文字及图片来源于网络,仅供学习、交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理。
欢迎点击右上角关注小编,除了分享技术文章之外还有很多福利,私信学习资料可以领取包括不限于Python实战演练、PDF电子文档、面试集锦、学习资料等。
小编闲暇时喜欢看热点,会收集微博,微信搜一搜上的热点,了解一下最近的娱乐八卦新闻。但是在浏览微博的时候,想把微博热点给复制下来,但是却怎么也复制不了,鼠标一放上去就变成了“小手”的形状。
还有微信上的搜一搜,微信热点,文字都不好复制下来。肿么办~~
Python号称无所不能,既然是玩Python的呢,为啥不利用Python给自己打造一款截屏的文字识别工具,用来提升自己的效率。
整体的思路
小编花了几个小时的时间,查阅了相关的资料,完成了这个小demo的设计,拿来与大家一同分享。我们要实现的目标就是,通过快捷键进行截屏之后,将识别的文字信息输出到屏幕之上或者是保存到本地的文件中。
先来说说这个demo的实现流程,如下图所示:
大概的步骤:
第一步,我们利用快捷键进行截屏
第二步,然后将截屏的图片进行保存
第三步,我们利用百度文字识别API进行文字的识别,最后我们将识别出来的文字进行保存。
图像的截取和保存
下面我们首先来完成第一和第二步,程序如下图所示:
这里小编直接采用了微信的截屏快捷键,大家只需要在电脑上登陆微信电脑版,然后点击“alt+A”即可进行截屏,为了更加方便大家理解,小编这里制作了一张流程图,如下所示,大家先理解思路:
然后我再给大家细细的一行一行讲解代码原理:
- 当我们按下“alt+A"后,同时激活了微信截屏和程序继续执行;
- 由于程序要从剪贴板中拿到图片,而剪贴板中的图片必须等待微信截屏中获取;
- 接着程序必须等待5秒,让微信完成截屏并将图片放入到剪贴板中去,当完成这一步之后,程序才能继续向下执行;
- 此时程序中最后两句,我们使用PIL库中的ImageGrab文件内的grabclipboard函数来获取剪切板当中的图片,并将其保存到本地的图片文件当中。
图像的识别和文字提取
上面的程序完成了我们的截屏和保存,下面的程序则实现了第三步和第四步的处理。就是把图像里面的文字通过AI技术提取,然后保存。
上述的程序中,我们直接采用百度文字识别的API接口即可(如何使用百度AI接口这个前面的历史文章提到多次)。
- 程序以二进制的形式读入了图片,并将其以base64进行编码;
- 然后我们构造了接口的请url,其中self.access_token是接口的访问令牌,我们通过post的方式来提交参数信息;
- 然后获取接口返回给我们的结果,如果结果正确返回的话,那我们就将结果写入到本地的指定txt文档内;
- 否则程序就会输出“something wrong”并结束。
最后我们来展示一下程序运行的结果,提取出微博热点吧。