前言 本文的文字及圖片來源於網路,僅供學習、交流使用,不具有任何商業用途,版權歸原作者所有,如有問題請及時聯繫我們以作處理。 歡迎點擊右上角關註小編,除了分享技術文章之外還有很多福利,私信學習資料可以領取包括不限於Python實戰演練、PDF電子文檔、面試集錦、學習資料等。 小編閑暇時喜歡看熱點,會 ...
前言
本文的文字及圖片來源於網路,僅供學習、交流使用,不具有任何商業用途,版權歸原作者所有,如有問題請及時聯繫我們以作處理。
歡迎點擊右上角關註小編,除了分享技術文章之外還有很多福利,私信學習資料可以領取包括不限於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”並結束。
最後我們來展示一下程式運行的結果,提取出微博熱點吧。