【原創】利用騰訊和百度的AI接口識別驗證碼

  衆所周知,驗證碼在大部分的實際運用中是繞不開的問題,包括驗證,爬蟲,測試等等,而後解決驗證碼的方法也有很多,但大多數都會運用OCR。(這裏說的驗證碼,是字符類型的驗證碼)html

  目前要解決驗證碼,有如下幾種方法:python

  一、用OCR工具,好比tesseract-ocr;框架

  二、利用各種語言編寫的識別庫;工具

  三、想方法繞過驗證碼,這種測試中運用的多;測試

  前些天看見騰訊和百度都在已經搞本身的 AI LAB(實際上他們很早就開始了,而且對開發者開放了很多接口,提供使用),AI LAB包含語音識別、文字識別、圖像識別,人臉識別、內容審覈、數據法分析等等,而後也看到文字識別能夠用來識別(字符)驗證碼,就想着能不能用文字識別的接口來識別驗證碼,也稱「在線OCR」。網站

  說着就動手實現了,恰好公司的系統後臺在登陸的時候有個驗證碼,因而就利用selenium框架寫了一個自動登陸系統後臺的python腳本,騰訊和百度的AI方法均可以實現了。htm

  首先是利用騰訊 AI 的文字識別方法(騰訊 AI:https://ai.qq.com/),選擇通用識別(https://ai.qq.com/product/ocr.shtml),查看技術文檔(https://ai.qq.com/doc/ocrgeneralocr.shtml),下載SDK(https://ai.qq.com/doc/sdk.shtml)(SDK只支持Python2,須要支持Python3的下載文章後面連接的代碼。),目前只支持PHP和Python。這裏注意下,在使用接口以前,須要註冊成爲開發者,建立應用得到AppID、AppKey,後面會有用到。blog

  實現方法和思路是截取當前的驗證碼,而後將截取下來的驗證碼傳給OCR接口識別,待返回識別結果後,就將結果保存,顯示在當前窗口。如下是實現方法和具體步驟:接口

  1)、先訪問後臺網站,截取驗證碼;開發

  驗證碼須要截取保存,不要點擊,也不要刷新,否則每次請求登陸的驗證碼都會變化。

  

  2)、截取驗證碼以後,傳送給OCR接口;

  

  3)、在輸入框中輸入驗證碼;

  

  4)、這裏須要用到的SDK,在後面的代碼連接下載查看。

  利用騰訊 AI 的文字識別方法就是這樣了,以後就是用百度 AI 的文字識別方法了。

  利用百度 AI 的文字識別方法(百度 AI:https://ai.baidu.com/),選擇通用文字識別(https://ai.baidu.com/tech/ocr/general),查看技術文檔(https://ai.baidu.com/docs#/OCR-API/top),下載SDK(https://ai.baidu.com/sdk#ocr),支持的語言要比騰訊多一些,這裏選擇用Python實現。使用以前同樣要申請成爲開發者,建立應用得到Access Token(APP_ID,API_KEY,SECRET_KEY)。

  實現方法和前面利用騰訊 AI 同樣,截取和保存都是同樣的,不同的就是OCR接口傳參和方法不同,區別比較大。

  OCR驗證碼接口識別方法:

  

  以上就是利用騰訊和百度 AI 的文字識別在線OCR識別驗證碼的方法了,實現過程和方法不復雜,比本地安裝一些OCR軟件簡單多了,並且識別率和準確率也比本地化的OCR要高很多。

  騰訊和百度的 AI 接口目前都是無償使用的,不過在使用次數上,二者有區別,但仍是可以徹底保證平常使用的,下面的連接的是實現的代碼,IP地址和開發者帳號已作了模糊化處理。

  (PS.注意騰訊 Ai 提供的SDK只支持Python2,連接下的代碼已修改成Python3實現。百度的SDK支持Python3,不須要修改。)

  以上內容屬於原創,轉載需受權,有問題可留言。

相關文章
相關標籤/搜索