使用百度的API进行验证码识别(图片形式的文字验证码与字母验证码) | 您所在的位置:网站首页 › 百度云删文件要验证码 › 使用百度的API进行验证码识别(图片形式的文字验证码与字母验证码) |
使用百度的API来识别验证码,百度有每月若干次的免费次数配额:可以通过百度接口免费测试资源查看 选择高精度版(可以根据识别场景自己决定,或者先在功能演示界面测试一下 : ) 百度OCR api使用流程 如何获取?创建应用使用样例,在线调试具体使用 如何获取?首先得要有一个百度的账号,需要进行实名认证,登录百度智能云,并查看自己是否实名认证(会显示已实名认证或未实名认证): 找到产品中的文字识别: 点击立即使用: 这里面有免费尝鲜和创建应用,需要先领取自己需要的免费配额然后创建应用: 选择其中一项然后点击0元领取(我已经领取过**通用文字识别(高精度)**所以下面就没有了,但是其他的还有,说明这些里面应该可以免费领取不止一个,毕竟还有一个 全部 的选项): 自此,就领取到自己的免费配额了,接下来就是使用了: :) 创建应用创建应用这一步好像并没有什么特别需要注意的,按需创建即可:主要就是填填应用名称、接口选择 我开发的是web应用,不需要Android和IOS系统的HTTP SDK,可以按需勾选: :) 创建完毕之后,可以在应用列表中查看自己创建的应用: 使用样例,在线调试先在API在线调试这里查看一下具体示例代码 然后自己调节一下参数: 然后上传图片,点击调试: 下面是调试结果,(如果调试成功的话会)返回一个json格式: 具体使用只需要将示例代码复制下来稍加修改运行即可: ```python import base64 import urllib import requests API_KEY = "gmbLys*******xrToI" # 从上一步复制下来就会自动填充成你自己的KEY,或者从我这里复制自己手动填成自己的KEY即可 SECRET_KEY = "cQVB*******Kymg1" def main(): url = "https://aip.baidubce.com/rest/2.0/ocr/v1/accurate_basic?access_token=" + get_access_token() image = get_file_content_as_base64("./截图/009.png",True) # 这里的路径改为需要的路径 payload = f'image={image}'# 是的,我就修改了这两行代码 headers = { 'Content-Type': 'application/x-www-form-urlencoded', 'Accept': 'application/json' } response = requests.request("POST", url, headers=headers, data=payload) print(response.text) def get_file_content_as_base64(path, urlencoded=False): """ 获取文件base64编码 :param path: 文件路径 :param urlencoded: 是否对结果进行urlencoded :return: base64编码信息 """ with open(path, "rb") as f: content = base64.b64encode(f.read()).decode("utf8") if urlencoded: content = urllib.parse.quote_plus(content) return content def get_access_token(): """ 使用 AK,SK 生成鉴权签名(Access Token) :return: access_token,或是None(如果错误) """ url = "https://aip.baidubce.com/oauth/2.0/token" params = {"grant_type": "client_credentials", "client_id": API_KEY, "client_secret": SECRET_KEY} return str(requests.post(url, params=params).json().get("access_token")) if __name__ == '__main__': main()"./截图/009.png"图片是: 在本机运行代码,结果如下: {"words_result":[{"words":"0+9+4*6答案是?"}],"words_result_num":1,"log_id":1768475643012942234}识别出来了内容为“0+9+4*6答案是?” —————— 接下来有什么好用的再容我慢慢尝试。 |
CopyRight 2018-2019 实验室设备网 版权所有 |