[Python进阶] 识别验证码

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个重要信息:AppIDAPI KeySecret Key。妥善保管好着3个信息,后面会用到。

11.3.1.2 获取Access_token

访问示例代码中心:https://console.bce.baidu.com/tools/#/api?product=AI\&project=文字识别\&parent=鉴权认证机制\&api=oauth%2F2.0%2Ftoken\&method=post

快速调试接口,可进行签名验证、查看在线调用的请求内容和返回结果、示例代码的自动生成。

填入之前获取到的API KeySecret Key,点击调试,然后切换到响应数据中的Body页面,在下面我们可以看到access_token

11.3.1.3 调用接口

请求示例代码:

py 复制代码
# 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

使用:

py 复制代码
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)
相关推荐
大模型真好玩31 分钟前
深入浅出LangGraph AI Agent智能体开发教程(五)—LangGraph 数据分析助手智能体项目实战
人工智能·python·mcp
测试老哥36 分钟前
Selenium 使用指南
自动化测试·软件测试·python·selenium·测试工具·职场和发展·测试用例
百锦再1 小时前
[特殊字符] Python在CentOS系统执行深度指南
开发语言·python·plotly·django·centos·virtualenv·pygame
张子夜 iiii1 小时前
4步OpenCV-----扫秒身份证号
人工智能·python·opencv·计算机视觉
潮汐退涨月冷风霜2 小时前
数字图像处理(1)OpenCV C++ & Opencv Python显示图像和视频
c++·python·opencv
酷飞飞9 小时前
Python网络与多任务编程:TCP/UDP实战指南
网络·python·tcp/ip
数字化顾问10 小时前
Python:OpenCV 教程——从传统视觉到深度学习:YOLOv8 与 OpenCV DNN 模块协同实现工业缺陷检测
python
学生信的大叔11 小时前
【Python自动化】Ubuntu24.04配置Selenium并测试
python·selenium·自动化
诗句藏于尽头12 小时前
Django模型与数据库表映射的两种方式
数据库·python·django
智数研析社12 小时前
9120 部 TMDb 高分电影数据集 | 7 列全维度指标 (评分 / 热度 / 剧情)+API 权威源 | 电影趋势分析 / 推荐系统 / NLP 建模用
大数据·人工智能·python·深度学习·数据分析·数据集·数据清洗