如果没有安装 就使用命令 pip install baidu-aip 来安装
from aip import AipOcr import requests from PIL import Image第一步 先找到网页中验证码的图片接口 第二步 下载验证码的图片保存到本地
# 从指定的网页中下载图片
def download_code():
s = requests.session()
url = '验证码的地址'
head = {
'User-Agent':'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/101.0.4951.64 Safari/537.36'
}
# 发送get请求获取到图片
result = s.get(url=url,headers=head)
# 把图片保存到本地
with open('code.jpg','wb') as f:
f.write(result.content)
第三步 把下载完成的图片进行二值化 方便识别
def image_er():
image = Image.open('code.jpg').convert('L')
table = []
for i in range(256):
if i < 127:
table.append(0)
else:
table.append(1)
# 处理完成后覆盖保存
image.point(table,'1').save('code.jpg')
处理前:
处理后:
第四步 调用百度的识别接口,申请方式在文章底部# 调用百度的 api 来进行识别
def baidu_code_api():
APP_ID = '百度官网申请的 APP_ID'
API_KEY = '百度官网申请的 API_KEY'
SECRET_KEY = '百度官网申请的 SECRET_KEY'
with open('code.jpg','rb') as f:
code = f.read()
client = AipOcr(APP_ID, API_KEY, SECRET_KEY)
# 调用百度的接口,使用 标准 方式识别
result = client.general(code)
# 识别的结果是一个字典 取值取到words的值后把空格删除
return result['words_result'][0]['words'].replace(' ','')
第五步 把识别的结果打印出来
# 调用函数
if __name__ == '__main__':
download_code()
image_er()
print(baidu_code_api())
可以看到 图片的识别结果就打印出来了~
完整代码:# -*- coding: utf-8 -*-
# @Author : Chengtianyu
# @Time : 2022/5/22 10:45
from aip import AipOcr
import requests
from PIL import Image
# 从指定的网页中下载图片
def download_code():
s = requests.session()
url = '图片的地址'
head = {
'User-Agent':'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/101.0.4951.64 Safari/537.36'
}
result = s.get(url=url,headers=head)
with open('code.jpg','wb') as f:
f.write(result.content)
# 把下载完成的图片灰度化处理一下 提高识别准确率
def image_er():
image = Image.open('code.jpg').convert('L')
table = []
for i in range(256):
if i < 127:
table.append(0)
else:
table.append(1)
image.point(table,'1').save('code.jpg')
# 调用百度的 api 来进行识别
def baidu_code_api():
APP_ID = '申请的 APP_ID'
API_KEY = '申请的 API_KEY'
SECRET_KEY = '申请的 SECRET_KEY'
with open('code.jpg','rb') as f:
code = f.read()
# 配置百度的接口
client = AipOcr(APP_ID, API_KEY, SECRET_KEY)
# 调用百度的接口,使用 手写方式识别
result = client.general(code)
return result['words_result'][0]['words'].replace(' ','')
# 调用函数
if __name__ == '__main__':
download_code()
image_er()
print(baidu_code_api())
百度接口申请:
打开登陆 百度文字识别,覆盖全面,响应迅速,准确率超99%-百度AI开放平台
领取完成创建一个应用就可以看到 id key 了
在 pycharm 中就可以使用了,百度还提供了很多识别方式,注意不要用超额了類



