这篇文章使用的验证码识别来自于阿里云API市场,需要进入阿里云API市场购买产品,获得APPCODE,才能获得使用权限,新用户有500次免费额度,具体操作如下。
一、获取APPCODE
1. 打开购买链接,选择【0元/500次】,点击【立即购买】
2. 支付完成后,点击【管理控制台】
3. 复制APPCODE
二、调用API接口,识别验证码
以下所有代码,均来自上述验证码识别产品页的示例代码
1. python代码
(1) 将前面获得的APPCODE粘贴到代码第9行。
(2) 根据识别图片的来源,修改第15行,如果图片保存在本地,第15行修改为True,并把图片路径写到第18行;如果图片来源于网络,第15行不必修改,把图片的URL链接地址写到第26行。
import urllib
import urllib.request
import base64
#API产品路径
host = 'https://codevirify.market.alicloudapi.com'
path = '/icredit_ai_image/verify_code/v1'
#阿里云APPCODE
appcode = '阿里云APPCODE'
url = host + path
bodys = {}
querys = ""
#参数配置
if False:
#启用BASE64编码方式进行识别
#内容数据类型是BASE64编码
f = open(r'本地图片路径', 'rb')
contents = base64.b64encode(f.read())
f.close()
bodys['IMAGE'] = contents
bodys['IMAGE_TYPE'] = '0'
else:
#启用URL方式进行识别
#内容数据类型是图像文件URL链接
bodys['IMAGE'] = 'URL链接地址'
bodys['IMAGE_TYPE'] = '1'
post_data = urllib.parse.urlencode(bodys).encode('utf-8')
request = urllib.request.Request(url, post_data)
request.add_header('Authorization', 'APPCODE ' + appcode)
request.add_header('Content-Type', 'application/x-www-form-urlencoded; charset=UTF-8')
response = urllib.request.urlopen(request)
content = response.read()
if (content):
print(content.decode('utf-8'))
三、识别效果
{
"VERIFY_CODE_STATUS": "艾科瑞特,让企业业绩长青",
"VERIFY_CODE_ENTITY": {
"VERIFY_CODE": "3X1Z"
}
}