[Python进阶]识别验证码
- 电脑硬件
- 2025-08-04 07:24:01

11.3 识别验证码
我们再开发某些项目的时候,如果遇到要登录某些网页,那么会经常遇到输入验证码的情况,而每次人工输入验证码的话,比较浪费时间。于是,可以通过调用某些接口进行识别。
11.3.1 调用百度文字识别接口这里,我们详细的来介绍一下如何注册百度云、通过Python调用百度文字识别接口。
11.3.1.1 注册百度云1、搜索百度智能云,进入到官方主页。 2、点击免费注册,注册百度智能云。 3、进入到应用管理:https://console.bce.baidu.com/ai/#/ai/ocr/overview/index 4、在服务列表中,找到通用场景OCR下的通用文字识别(高精度版),点击右边的开通。这个服务每个月会有1000次的免费试用。对于一般人而言也够了。
5、进去后按照要求填写相关信息,确认开通即可。 6、开通后,我们会得到3个重要信息:AppID、API Key、Secret Key。妥善保管好着3个信息,后面会用到。
11.3.1.2 获取Access_token访问示例代码中心:https://console.bce.baidu.com/tools/#/api?product=AI&project=%E6%96%87%E5%AD%97%E8%AF%86%E5%88%AB&parent=%E9%89%B4%E6%9D%83%E8%AE%A4%E8%AF%81%E6%9C%BA%E5%88%B6&api=oauth%2F2.0%2Ftoken&method=post 快速调试接口,可进行签名验证、查看在线调用的请求内容和返回结果、示例代码的自动生成。 填入之前获取到的API Key、Secret Key,点击调试,然后切换到响应数据中的Body页面,在下面我们可以看到access_token。
11.3.1.3 调用接口请求示例代码:
# encoding:utf-8 import requests import base64 ''' 通用文字识别(高精度版) ''' request_url = "https://aip.baidubce.com/rest/2.0/ocr/v1/accurate_basic" # 二进制方式打开图片文件 f = open('[本地文件]', 'rb') img = base64.b64encode(f.read()) params = {"image":img} access_token = '[调用鉴权接口获取的token]' request_url = request_url + "?access_token=" + access_token headers = {'content-type': 'application/x-www-form-urlencoded'} response = requests.post(request_url, data=params, headers=headers) if response: print (response.json())返回示例(JSON格式):
{ “log_id”: 1390582998516105216, “words_result_num”: 2 “words_result”: [ { “words”: " OCR" }, { “words”: “百度通用文字识别高精度版” } ] }
11.3.2 使用第三方库:ddddocr这是一个十分强大的图文识别第三方库,相对于百度文字识别,优势如下: 1、不用在线注册,本地部署即可 2、没有次数限制 3、识别效果比百度的图文识别要更好 4、使用简单 老规矩,先下载安装:
pip install ddddocr
使用:
def ftOCRByddddocr(pmImgFilename: str): """ 通过ddddocr库识别本地图片中的字符 @param pmImgFilename: 图片名 @return: {str:识别到的内容} """ import ddddocr ocr = ddddocr.DdddOcr(show_ad=False) with open(pmImgFilename, 'rb') as f: img_bytes = f.read() return ocr.classification(img_bytes)[Python进阶]识别验证码由讯客互联电脑硬件栏目发布,感谢您对讯客互联的认可,以及对我们原创作品以及文章的青睐,非常欢迎各位朋友分享到个人网站或者朋友圈,但转载请说明文章出处“[Python进阶]识别验证码”