1.注冊開發者雲打碼賬號:
2.添加新軟件
進入開發者后台->我的軟件->輸入軟件名稱(自定義)
提交成功后,會返回: 軟件代碼即為后面的appId,通訊密匙為:appKey
3.下載對應的語言使用說明文檔,這里以python為例:雲打碼說明文檔
點擊下載解壓就好了,解壓完之后為:
4.到這里就可以干活了:打開編輯器,打開上圖對應的python版本文件,這里使用python3
簡單進行修改后,就可以使用雲打碼進行驗證碼識別了
第一回識別,會報1007,是因為沒有充值,這個平帶是收費的,但是我覺得挺划算的,充一塊錢就能使用很多次
#必須要寫的否則會報錯 # -*- coding: cp936 -*- import sys import os from ctypes import * # 下載接口放目錄 http://www.yundama.com/apidoc/YDM_SDK.html # 錯誤代碼請查詢 http://www.yundama.com/apidoc/YDM_ErrorCode.html # 所有函數請查詢 http://www.yundama.com/apidoc print('>>>正在初始化...') # 雲打碼API即為解壓文件夾中的腳本文件,對應自己的系統版本,X64為64位,默認使用32位的 YDMApi = windll.LoadLibrary('yundamaAPI') appId = 1 # 軟件ID appKey = b'22cc5376925e9387a23cf797cb9ba745' # 軟件密鑰 print('軟件ID:%d\r\n軟件密鑰:%s' % (appId, appKey)) username = b'test' password = b'test' if username == b'test': exit('\r\n>>>請先設置用戶名密碼') # 有兩種方法可以識別驗證碼,以下兩種辦法使用其一即可 #方法一. 一鍵識別函數 print('\r\n>>>正在一鍵識別...') # 例:1004表示4位字母數字,不同類型收費不同。請准確填寫,否則影響識別率。在此查詢所有類型 http://www.yundama.com/price.html codetype = 1004 # 分配30個字節存放識別結果 result = c_char_p(b" ") # 識別超時時間 單位:秒 timeout = 60 # 驗證碼文件路徑 filename = b'getimage.jpg' # 一鍵識別函數,無需調用 YDM_SetAppInfo 和 YDM_Login,適合腳本調用 captchaId = YDMApi.YDM_EasyDecodeByPath(username, password, appId, appKey, filename, codetype, timeout, result) print("一鍵識別:驗證碼ID:%d,識別結果:%s" % (captchaId, result.value)) #方法二.普通識別函數 print('\r\n>>>正在登陸...') # 第一步:初始化雲打碼,只需調用一次即可 YDMApi.YDM_SetAppInfo(appId, appKey) # 第二步:登陸雲打碼賬號,只需調用一次即可 uid = YDMApi.YDM_Login(username, password) if uid > 0: print('>>>正在獲取余額...') # 查詢賬號余額,按需要調用 balance = YDMApi.YDM_GetBalance(username, password) print('登陸成功,用戶名:%s,剩余題分:%d' % (username, balance)) print('\r\n>>>正在普通識別...') # 第三步:開始識別 # 例:1004表示4位字母數字,不同類型收費不同。請准確填寫,否則影響識別率。在此查詢所有類型 http://www.yundama.com/price.html codetype = 1004 # 分配30個字節存放識別結果 result = c_char_p(b" ") # 驗證碼文件路徑 filename = b'getimage.jpg' # 普通識別函數,需先調用 YDM_SetAppInfo 和 YDM_Login 初始化 captchaId = YDMApi.YDM_DecodeByPath(filename, codetype, result) print("普通識別:驗證碼ID:%d,識別結果:%s" % (captchaId, result.value)) #返回bytes格式字符串 , 轉為utf-8編碼,方便帶入程序直接使用 utf_res = result.value.decode('utf-8') else: print('登陸失敗,錯誤代碼:%d' % uid) print('\r\n>>>錯誤代碼請查詢 http://www.yundama.com/apidoc/YDM_ErrorCode.html')
雲打碼的識別效果還不錯,也不貴,建議大家使用
如有問題,歡迎交流