python3 调用阿里云图像识别OCR-验证码识别
前言
使用别人的接口,是需要在别人的平台上创建应用的。
所以,我们要先去 购买地址:(放心,免费的。)
/products/57124001?spm=5176.730006-56956004-57124001-cmapi028554.102.2.11315f6fHmnmpw
阿里云的接口服务还是有点多的。
各种网络图片!!!!我TMD
0元/10次
我们要的是这个!!!还好还好。
果断买下,反正不要钱。
复制一下AppCode,
接口的要求如下:
/products/57124001/cmapi028554.html?spm=5176.52.101.3.691c7218AzeETf#sku=yuncode2255400000
图像数据:base64编码,要求base64编码后大小不超过4M,最短边至少15px,最长边最大4096px,支持jpg/png/bmp格式,和url参数只能同时存在一个。
要明确,接口地址,请求方式,和验证方式。
接下来就是编码咯。
python3调用阿里云图像识别OCR-实现验证码识别
实际上接口文档的官网已经写好了文档,对应修改自己的数据即可。
源码:
#python3
import urllib.request
import urllib.parse
import json
import time
import base64
# 本地图片
image_path = './img/3.jpg'
with open(image_path, 'rb') as f: # 以二进制读取本地图片
data = f.read()
encodestr = str(base64.b64encode(data),'utf-8') # base64编码图片
# 请求头
headers = {
'Authorization': 'APPCODE b14e9379ac4f4bc2xxxxxxxxxxxx', # APPCODE +你的appcod,一定要有空格!!!
'Content-Type': 'application/json; charset=UTF-8' # 根据接口的格式来
}
def posturl(url,data={}):
try:
params=json.dumps(dict).encode(encoding='UTF8')
req = urllib.request.Request(url, params, headers)
r = urllib.request.urlopen(req)
html =r.read()
r.close();
return html.decode("utf8")
except urllib.error.HTTPError as e:
print(e.code)
print(e.read().decode("utf8"))
time.sleep(1)
if __name__=="__main__":
url_request="https://ocrapi-/ocrservice/advanced" # 对照官网API改
dict = {'img': encodestr}
html = posturl(url_request, data=dict)
print(html,type(html)) #
jos = json.loads(html) # str转json对象,
print(jos,type(jos))
result = jos['content'] # 就可以按key取值了
print('识别的结果:',result)1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
运行一下,
看一下返回结果,然后提取我们要的字段:
print(html,type(html)) #
jos = json.loads(html) # str转json对象,
print(jos,type(jos))
result = jos['content'] # 就可以按key取值了
print('识别的结果:',result)1
2
3
4
5
6
识别结果:
OMG,效果一般般啊。。。
经过多个接口OCR的对比:
之后,最终测试效果,腾讯云意外的胜出。老马人才还是不少啊。
如果觉得《python 验证码识别 阿里云_python3调用阿里云图像识别OCR-实现验证码识别》对你有帮助,请点赞、收藏,并留下你的观点哦!