失眠网,内容丰富有趣,生活中的好帮手!
失眠网 > python 验证码识别 阿里云_python3调用阿里云图像识别OCR-实现验证码识别

python 验证码识别 阿里云_python3调用阿里云图像识别OCR-实现验证码识别

时间:2019-09-02 23:40:01

相关推荐

python 验证码识别 阿里云_python3调用阿里云图像识别OCR-实现验证码识别

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-实现验证码识别》对你有帮助,请点赞、收藏,并留下你的观点哦!

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。