使用百度的API进行验证码识别(图片形式的文字验证码与字母验证码)

使用百度的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答案是?
——————
接下来有什么好用的再容我慢慢尝试。

  • 6
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值