在识别验证码的时候,可以调用百度的通用文字识别接口。
步骤
Step1 获取access_token的值。
① 登陆 https://ai.baidu.com/ ,找到通用文字识别,点击立即使用。
② 点击创建应用后,会得到API Key 和Secret Key。
③ 将API Key 和Secret Key写入如下代码中,得到 access_token 的值。
1 # encoding:utf-8 2 import requests 3 4 # client_id 为官网获取的AK, client_secret 为官网获取的SK 5 host = 'https://aip.baidubce.com/oauth/2.0/token?grant_type=client_credentials&client_id=【官网获取的AK】&client_secret=【官网获取的SK】' 6 response = requests.get(host) 7 if response: 8 print(response.json())
Step2 调用通用文字识别接口
将得到的 access_token 值和下载到本地的验证码图片名写入如下代码中,就可以获取识别结果。
1 # encoding:utf-8 2 3 import requests 4 import base64 5 6 ''' 7 通用文字识别 8 ''' 9 10 request_url = "https://aip.baidubce.com/rest/2.0/ocr/v1/general_basic" 11 # 二进制方式打开图片文件 12 f = open('[本地文件]', 'rb') 13 img = base64.b64encode(f.read()) 14 15 params = {"image":img} 16 access_token = '[调用鉴权接口获取的token]' 17 request_url = request_url + "?access_token=" + access_token 18 headers = {'content-type': 'application/x-www-form-urlencoded'} 19 response = requests.post(request_url, data=params, headers=headers) 20 if response: 21 print (response.json())
完整代码如下
1 def identify_Verification_code(API_Key,Secret_Key,Verification_code): 2 #获取Access Token官方代码,必须要有API Key和Secret Key两个参数才能获取。 3 import requests 4 5 host = 'https://aip.baidubce.com/oauth/2.0/token?grant_type=client_credentials&client_id='+ API_Key + '&client_secret=' + Secret_Key 6 response = requests.get(host) 7 access_token = response.json()['access_token'] 8 9 #通用文字识别官方代码 10 import base64 11 request_url = "https://aip.baidubce.com/rest/2.0/ocr/v1/general_basic" 12 # 二进制方式打开图片文件,Verification_code是要识别的验证码的名字 13 f = open(Verification_code, 'rb') 14 img = base64.b64encode(f.read()) 15 16 params = {"image":img} 17 access_token = access_token 18 request_url = request_url + "?access_token=" + access_token 19 headers = {'content-type': 'application/x-www-form-urlencoded'} 20 response = requests.post(request_url, data=params, headers=headers) 21 shibie_result = response.json()['words_result'][0]['words'] 22 print(shibie_result) 23 24 if __name__ == '__main__': 25 API_Key = '***' 26 Secret_Key = '***' 27 Verification_code = '验证码.png' 28 identify_Verification_code(API_Key,Secret_Key,Verification_code)