用次世代2.3訓練自己的字符庫cds小demo

從我前幾天寫的 python 基於次世代驗證碼識別系統的小demo 中大家可以得知,如果有antiVC.dll 和關於特定網站的字符庫cds,我們就能夠讓瀏覽器自動識別驗證碼了。雖然網絡有不少視頻關於怎麼訓練cds,我還是總結下吧,哎,備忘。

自己訓練數據相對於去購買什麼超級鷹API啊,de-captcher啊這種驗證碼識別平臺,有2個好處,一是不用考慮網絡延遲,二是API都是收費的,小弟我也是Naive得貢獻了10幾刀的,╮(╯▽╰)╭

這裏可以貢獻下怎麼用de-captcher的驗證平臺(前提是你先註冊了de-captcher用戶並且購買了次數):

#驗證碼在線驗證
def getTextFromImg(img_file):
    data = {
        'username': 'your_user',
        'password': 'your_pass',
        'function': 'picture2',
        'pict_to': '0',
        'pict_type': '0',
        'pict': img_file
    }
    keys = 'ResultCode|MajorID|MinorID|Type|Timeout|Text'.split('|')
    de_captcher_server = "http://poster.de-captcher.com/"
    try:
        opener = urllib2.build_opener(urllib2.HTTPCookieProcessor())
        result = opener.open(de_captcher_server, urllib.urlencode(data))
        data = result.read()
        #print 'check_code:',data
        return dict(zip(keys, data.split('|')))
    except KeyError,e:
        print str(e)
        return result


目標:http://jiaowu.dlufl.edu.cn/


可以發現它的驗證碼地址是我們最喜歡的固定URL,每次F5都是新的驗證碼。

有些網站驗證碼動態URL,而且還是JS生成,我們需要JS解析器。

那個要自己寫腳本跑,思路有兩種:

一是瀏覽器截圖,可參考我之前寫的:Pyqt 瀏覽器截圖小demo

二是通過selenium+PhantomJS,動態解析頁面源代碼下載下來,獲取URL後通過訪問下載圖片,可參考我之前寫的:selenium 操控瀏覽器

有些同學可能發現了,方法二得到的驗證碼是不同於第一次獲得的驗證碼,畢竟每次訪問都會更新,又有什麼關係呢?

我們只要獲得驗證碼圖片用來訓練就行了。


總之上面的情況暫時不考慮,我們現在遇到的是最簡單的情況,同一URL可獲取不同的驗證碼:



OK,打開次世代2.3,在地址欄輸入:http://jiaowu.dlufl.edu.cn/ACTIONVALIDATERANDOMPICTURE.APPPROCESS,點擊下載圖像:



然後依次選擇:分割識別、平均分割(因爲看起來四四方方的很規整)、顯示字符分割矩形框、顯示識別結果、點擊最右邊的加號選擇圖像二值化:


再點擊字模管理,選中自動分割圖像:



雙擊第一個矩形“9”:



選擇切除白邊(有些雜點多的還要去除雜點),然後在右邊對應字符填下:9,告訴程序,以後遇見這種字符它就是9:



弄完一個後點擊“圖像重載”,對第二個矩形3,做同樣的操作:



填入3後,我們可以看到已經有兩個字模了,弄完這些就可以保存退出:



好的回到主界面,我們點擊重新識別,可以看到喜人的結果:


好的,當你識別率很高很高的時候,點擊項目管理,發佈識別庫,就能生存可愛的專屬的cds啦,不過正版軟件每次25軟妹幣,你捨得嗎?



吐槽下:

這基本上是我遇到的最最簡單的字模創建了,沒任何雜點,驗證碼超級規整,和我攻克的網站一比較就是被吊打的存在。。

有些難的,2000個字模以下別想識別成功,2k個啊有木有!!

要做足足兩天啊有木有!!!

難怪淘寶特定網站cds售價都是2k,3k軟妹幣啊有木有!!!

不是人幹得的啊有木有!!!

而且你還以爲有些網站驗證碼這麼容易獲得嗎?還不是一個個用腳本去跑的啊有木有!!


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章