@StarSky
2017-02-17T06:35:31.000000Z
字数 1764
阅读 1592
工作日记
API
最先尝试的阿里云api服务
附上链接:
身份证识别api介绍
身份证识别api产品详情及使用说明
附:可运行demo
# coding: utf-8
import base64
import ssl
import time
import urllib2
class Apitest(object):
def __init__(self):
self.host = 'https://dm-51.data.aliyun.com'
self.path = '/rest/160601/ocr/ocr_idcard.json'
self.method = 'POST'
self.appcode = '********'
self.url = self.host + self.path
self.querys = ''
self.bodys = {}
self.img_path = '/Users/saber/Documents/front/positive/cis_374744-58545697_front.jpeg'
def base64(self, img_path):
f = open(img_path, 'rb') # 二进制方式打开图文件
ls_f = base64.b64encode(f.read()) # 读取文件内容,转换为base64编码
f.close()
return ls_f
def request(self, base64str):
self.bodys[
''] = "{\"inputs\":[{\"image\":{\"dataType\":50,\"dataValue\":\"%s\"},\"configure\":{\"dataType\":50," \
"\"dataValue\":\"{\\\"side\\\":\\\"face\\\"}\"}}]}" % base64str
post_data = self.bodys['']
request = urllib2.Request(self.url, post_data)
request.add_header('Authorization', 'APPCODE ' + self.appcode)
# 根据API的要求,定义相对应的Content-Type
request.add_header('Content-Type', 'application/json; charset=UTF-8')
ctx = ssl.create_default_context()
ctx.check_hostname = False
ctx.verify_mode = ssl.CERT_NONE
response = urllib2.urlopen(request, context=ctx)
content = response.read()
if (content):
print(content)
if __name__ == '__main__':
test = Apitest()
img_path = '/Users/saber/Documents/front/positive/cis_74437602-76977944_front.jpeg'
base64str = test.base64(img_path)
statime = time.time()
test.request(base64str)
print ("time consume ->%s" % str(time.time()-statime))
购买了阿里云的api使用权限,一分钱一年期十万次,中午还打电话来问我有没有什么其他需求,产业做的真完善啊,提供的demo跟文档也都很明晰,すごい!
然后再来试试百度的,每天500次调用量是免费的,就没买 企业api (怎么不去抢啊!30块100次?),使用过程中一下就感觉到了微信百度这个api跟阿里云的差距。先附参考文档:
API接入指南
OCR-api文档
百度大脑-教学视频
嘛,有人可能会问有视频耶,为什么还说百度不专业呢。
百度的不专业体现在
1. UI丑,界面流程规划不合理,文档分散在不同平台
2. 视频限定了用户搜索资料的自主性,比不上一个完备的文档给人的体验
3. 只提供了PHP跟java版的demo,而作为人工智能主流的python都没提供(企业版的提供了 _(:з」∠)_ 花钱不花钱差别真大 )。
demo用java写的,稍后附上 。