用ocr庫進行圖形驗證碼的正確率實在是不太行php
並且這個圖像處理這一行當實在是很深,不是一天兩天就能搞定的html
所以這裏推薦一個第三方平臺——超級鷹http://www.chaojiying.compython
小聲嗶嗶,真的沒收廣告費json
首先來看一下超級鷹都能識別啥?http://www.chaojiying.com/price.htmlapi
基本能涵蓋常見的狀況,固然不一樣的項目所需的積分不一樣(充值對應積分,首次關注公衆號送1000積分)ide
話很少說,直接看開發文檔http://www.chaojiying.com/api.htmlpost
選擇python 的Demo下載,不過須要更改幾處,由於這個Demo是Python2寫的測試
python2下:網站
1 #!/usr/bin/env python 2 # coding:utf-8 3 4 import requests 5 from hashlib import md5 6 7 class Chaojiying_Client(object): 8 9 def __init__(self, username, password, soft_id): 10 self.username = username 11 password = password.encode('utf8') 12 self.password = md5(password).hexdigest() 13 self.soft_id = soft_id 14 self.base_params = { 15 'user': self.username, 16 'pass2': self.password, 17 'softid': self.soft_id, 18 } 19 self.headers = { 20 'Connection': 'Keep-Alive', 21 'User-Agent': 'Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 5.1; Trident/4.0)', 22 } 23 24 def PostPic(self, im, codetype): 25 """ 26 im: 圖片字節 27 codetype: 題目類型 參考 http://www.chaojiying.com/price.html 28 """ 29 params = { 30 'codetype': codetype, 31 } 32 params.update(self.base_params) 33 files = {'userfile': ('ccc.jpg', im)} 34 r = requests.post('http://upload.chaojiying.net/Upload/Processing.php', data=params, files=files, headers=self.headers) 35 return r.json() 36 37 def ReportError(self, im_id): 38 """ 39 im_id:報錯題目的圖片ID 40 """ 41 params = { 42 'id': im_id, 43 } 44 params.update(self.base_params) 45 r = requests.post('http://upload.chaojiying.net/Upload/ReportError.php', data=params, headers=self.headers) 46 return r.json() 47 48 49 if __name__ == '__main__': 50 chaojiying = Chaojiying_Client('超級鷹用戶名', '超級鷹用戶名的密碼', '96001') #用戶中心>>軟件ID 生成一個替換 96001 51 im = open('a.jpg', 'rb').read() #本地圖片文件路徑 來替換 a.jpg 有時WIN系統需要// 52 print chaojiying.PostPic(im, 1902) #1902 驗證碼類型 官方網站>>價格體系 3.4+版 print 後要加()
只須要把最後一行的print後面加括號()便可spa
最後三行所須要的參數:
超級鷹用戶名和密碼:註冊這個網站的
軟件ID:在用戶中心處獲取
圖片路徑:注意相對路徑和絕對路徑,案例中附帶了一個圖片a.jpg
驗證碼類型:在價格體系中查詢 http://www.chaojiying.com/price.html
拿Demo中的圖片先測試一下哈!
運行結果(經過程序可知是json格式的數據):
{'err_no': 0, 'err_str': 'OK', 'pic_id': '9077217532830000008', 'pic_str': '7261', 'md5': '09ba9448333d153c69bd29da7c7f3369'}
返回說明:
err_no,(數值) 返回代碼
err_str,(字符串) 中文描述的返回信息
pic_id,(字符串) 圖片標識號,或圖片id號
pic_str,(字符串) 識別出的結果
md5,(字符串) md5校驗值,用來校驗此條數據返回是否真實有效
試一下其餘圖片
{'err_no': 0, 'err_str': 'OK', 'pic_id': '2077218082830000010', 'pic_str': '46168', 'md5': '443788486ea90d7f249f278d5694053d'}
再測試一下帶有中文的圖片
{'err_no': 0, 'err_str': 'OK', 'pic_id': '3077218112830000013', 'pic_str': '基加證溼站代', 'md5': '61a282f8c45c8ac35d6904ff315e991d'}
總結下來仍是比較靠譜滴!