申请百度文字识别APIkey和Secret Key+文字验证码识别案例
发布日期:2021-06-29 21:37:21
浏览次数:3
分类:技术文章
本文共 4531 字,大约阅读时间需要 15 分钟。
1、首先打开,输入百度账号登陆
2、找到文字识别,然后进入后点击创建应用
3、应用名称,随便填写一个即可 文件识别包名选择 不需要即可,描述随便填一些 4、点击立即创建,出现如下图,点击查看应用详情如下图已经申请到API key和Secret Key
拿到上面的apikey和Secret Key我们就可以做事情了。 5、附上图片验证码(数字+字母)识别案列(用于某柠打卡): 现在大多数网站登录时候我们只能获取加密后的图片地址,因此案例传输的是图片加密后的字符串,如果传输png、jpg…等格式图片,直接按照代码注释中的提示修改即可。API列表,提供给我们许多免费请求地址
import osimport requestsimport urllibdef get_pic(imgbase64str): try: temp_url = 'https://aip.baidubce.com/oauth/2.0/token?grant_type=client_credentials&client_id=【API KEY】&client_secret=【SECRET KEY】' temp_res = requests.post(temp_url) temp_token = eval(temp_res.text)['access_token'] #https://aip.baidubce.com/rest/2.0/ocr/v1/accurate #高精度含位置识别方案 #https://aip.baidubce.com/rest/2.0/ocr/v1/accurate_basic #高精度不含位置识别方案 temp_url = 'https://aip.baidubce.com/rest/2.0/ocr/v1/accurate_basic?access_token=' + temp_token temp_headers = { 'Content-Type': 'application/x-www-form-urlencoded'} # temp_file = open(image, 'rb') #直接传图片的话去掉这里的注释就好了 # temp_image = temp_file.read() # temp_file.close() # temp_data = { # 'image': base64.b64encode(temp_image) # } image = imgbase64str.split(",")[1] temp_data={ 'image':image } temp_data = urllib.parse.urlencode(temp_data) temp_res = requests.post(url=temp_url, data=temp_data, headers=temp_headers) code = eval(temp_res.text)['words_result'][0]['words'] resultj = re.sub(u"([^\u4e00-\u9fa5\u0030-\u0039\u0041-\u005a\u0061-\u007a])", "", code) print("识别的验证码为:"+resultj) #正则去掉识别出的特殊字符 #result_four = resultj[0:4] # 只获取前4个字符 return resultj except Exception as e: return e print('验证码识别异常,请联系管理员')def convertBase642LocalImg(imgbase64str): #将imgbase64转换为本地图片存储 img = imgbase64str.split(",")[1] with open("E:\\PushCard\\1.png", 'wb') as f: f.write(base64.b64decode(img))if __name__=="__main__": result=get_pic("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAFAAAAAeCAYAAAC7Q5mxAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAHLSURBVGhD7ZfRcYQgEIZtx6vEGqzDBnxOCzyaEu75Xu46uAIcO7CCDSggwqLgmmRM9pthJhO58fdjWbQAhkQgsCg+9F9MCmgFssR0WCCRaA9kiWl4AnsQVSHl7Y9K9Po3OGNXw+ftFo66g1HPgWcbXm+f+qIiIU/z0HN3wO4VG2ULg/7ZHpEKNMEbwOI9mn2BhqEtbbB7h8Ua4F3LOZuh8TwqxywSz7lCCXQXT2IW+eWu2dDBvazhnWjwkEAZHUSiQIWV6D3ABPJgIbE8ToXuVaK8z0qUBBUoGbv2uwXmoqvMr8JptVO2SzxPL6pZYCXkrDxiAnPIFCj/Lw4qnWTNEufAT3glb5W/IrAXUKU2bQy3kWf0mS2Btg8eyPUDApFBESjZ7IdRcIHLIVJBRku2XK8CJSa0GvipjLGxoAe2ruFaPVChtrB6zzP98IQeSOEXBBJQ0pxtayuReApTuJBAdeKGomw/XH19YPxrgVuvK+oa8n4YcFmBx043i3lt2Thx3U+9+IOclMfD3PtEgSaoP3JXfvnysCOowqX61vPcrX5WnjW2/3rjiMhIBTKpsEAiLJAICyTCAomwQCIskAgLJMICibBAIiyQBMAX52VauxEZANgAAAAASUVORK5CYII=")
参数为图片的案例:
def getVertifyCode(image): try: temp_url = 'https://aip.baidubce.com/oauth/2.0/token?grant_type=client_credentials&client_id=【API KEY】&client_secret=【SECRET KEY】' temp_res = requests.post(temp_url) temp_token = eval(temp_res.text)['access_token'] temp_url = 'https://aip.baidubce.com/rest/2.0/ocr/v1/general_basic?access_token=' + temp_token temp_headers = { 'Content-Type': 'application/x-www-form-urlencoded'} temp_file = open('图片地址', 'rb') temp_image = temp_file.read() temp_file.close() temp_data = { 'image': base64.b64encode(temp_image) } temp_data = urllib.parse.urlencode(temp_data) temp_res = requests.post(url=temp_url, data=temp_data, headers=temp_headers) code = int(eval(temp_res.text)['words_result'][0]['words']) except Exception as e: print(e) print('验证码识别异常,请联系管理员')if __name__=="__main__": images = os.listdir("E:/pic/") for image_name in images: image="E:/pic/%s" % image_name getVertifyCode(image)
最后还可以通过百度提供的baidu-aip库进行识别:
需要安装baidu-aip库,直接pip Install baidu-aip
即可 from aip import AipOcrimport os"""你的百度AppID, API Key, Secret Key"""APP_ID = '16545975'API_KEY = 'qbK2kKKtrXTo0rE1rg4M6Tl6'SECRET_KEY = 'xxxxxxxxxxx'client = AipOcr(APP_ID, API_KEY, SECRET_KEY)"""打开文件,读取图片"""def get_file_content(filePath): with open(filePath, 'rb') as fp: return fp.read()PROJECT_ROOT = os.path.dirname(os.path.realpath(__file__))#获取项目根目录path = os.path.join(PROJECT_ROOT,"images") #文件路径for r, ds, fs in os.walk(path): for fn in fs: fname = os.path.join(r, fn) image = get_file_content(fname) ret = client.basicGeneral(image) for item in ret['words_result']: print(item['words'])
转载地址:https://dh-butterfly.blog.csdn.net/article/details/108793811 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!
发表评论
最新留言
初次前来,多多关照!
[***.217.46.12]2024年04月10日 02时43分48秒
关于作者
喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
css ===== text-transform
2019-04-30
javascript - 数据处理
2019-04-30
css ===== text-decoration
2019-04-30
css ===== white-space
2019-04-30
uniApp - 商城项目 - 1 项目搭建
2019-04-30
uniApp - 商城项目 2 - 底部导航
2019-04-30
CentOS7增加或修改SSH端口号
2019-04-30
Android回弹阻尼效果的简单实现,非基于ListView,ScrollView
2019-04-30
CentOS7部署轻量级web服务器nginx+php
2019-04-30
Android Studio爬过的坑
2019-04-30
Android签名生成和Android签名格式转换工具(MD5和SHA1签名)
2019-04-30
玩转Android Studio自定义模板插件-MVP模板为例
2019-04-30
reactNative 加载图片
2019-04-30
HTTP response报文结构
2019-04-30
css sprite是什么、有什么优缺点
2019-04-30
清除浮动的⼏种⽅式
2019-04-30
CSS在性能优化方面的实践
2019-04-30
CSS3动画(简单动画的实现,如旋转等)
2019-04-30
base64的原理及优缺点
2019-04-30
几种常见的CSS布局
2019-04-30