通过百度AI识别简单的验证码

为什么要使用百度AI的:

百度AI这个我之前用到的是语音识别,想着肯定也有图片识别成文字的,所以找了一下果然找了,而且可以免费使用一点。

注:调用的这个百度AI识别不是专门识别验证码图片的(它可以识别图片中的所有文字,包括空格),所以只能识别一些简单的验证码,专业的使用超级鹰(收费)

使用到的场景:

(1) 最近再写一个web自动化测试项目,在里面有一个selenium功能就是需要识别验证码。

(2) 在用爬虫爬取登陆后的页面内容时候,也需要识别验证码

百度AI找的地方:

支持识别的图片格式:

# 仅jpg/png/bmp格式

使用如下代码需要先申请一个AI的应用:

--------申请完需要修改代码种这三个值------------

APP_ID = ‘xxxxxxxx‘

API_KEY = ‘xxxxxxxx‘

SECRET_KEY = ‘xxxxxxxxxx‘

--------申请完需要修改代码种这三个值------------

识别代码如下:

# 不包含转换图片格式的写法

def _get_file_content(filePath):
    with open(filePath, ‘rb‘) as fp:
        return fp.read()

# 调用百度图片识别
def baidu_discern(filename):
    """ 你的 APPID AK SK """
    APP_ID = ‘xxxxxxxx‘
    API_KEY = ‘xxxxxxxx‘
    SECRET_KEY = ‘xxxxxxxxxx‘

    client = AipOcr(APP_ID, API_KEY, SECRET_KEY)

    image = _get_file_content(filename)

    """ 调用网络图片文字识别, 图片参数为本地图片 """
    ret = client.webImage(image)
    words = ret.get(‘words_result‘)
    if words:
        return ‘‘.join(words[0][‘words‘].split(‘ ‘))
    else:
        return ‘‘

if __name__ == ‘__main__‘:
    ret = baidu_discern(‘../code.png‘)
    print(ret)

当图片格式不是这三种格式时候,需要转换图片格式才能识别

# 我用的是python3的pillow模块进行图片格式转换

# python2是pil模块

from PIL import Image
from aip import AipOcr

""" 读取图片 """
def get_file_content(filePath):
    with open(filePath, ‘rb‘) as fp:
        return fp.read()

def baidu_discern(filename):
    """ 你的 APPID AK SK """
    APP_ID = ‘xxxxxxx‘
    API_KEY = ‘xxxxxxxxx‘
    SECRET_KEY = xxxxxxxxxx‘

    client = AipOcr(APP_ID, API_KEY, SECRET_KEY)

    image = get_file_content(filename)

    """ 调用网络图片文字识别, 图片参数为本地图片 """
    ret = client.webImage(image)
    words = ret.get(‘words_result‘)
    if words:
        return ‘‘.join(words[0][‘words‘].split(‘ ‘))

def get_img_content(filename, format=False):
    if format:
        # 转换图片格式
        new_filename = filename.split(‘.‘)[0] + ‘.png‘
        Image.open(filename).save(new_filename)
        ret = baidu_discern(new_filename)
    else:
        ret = baidu_discern(filename)

    return ret

if __name__ == ‘__main__‘:
     # 非转换的
     ret = get_img_content(‘../code.png‘, format=False)
     # 转换的
     ret = get_img_content(‘../code.png‘, format=True)
     print(ret)

使用效果:

# 以古诗文网的验证码为例

https://so.gushiwen.org/user/login.aspx?from=http://so.gushiwen.org/user/collect.aspx

# 用selenium执行的话,使用的时候需要截图下来

原文地址:https://www.cnblogs.com/zezhou/p/11517264.html

时间: 2024-11-08 04:34:32

通过百度AI识别简单的验证码的相关文章

Python验证码识别--利用pytesser识别简单图形验证码

一.探讨 识别图形验证码可以说是做爬虫的必修课,涉及到计算机图形学,机器学习,机器视觉,人工智能等等高深领域…… 简单地说,计算机图形学的主要研究内容就是研究如何在计算机中表示图形.以及利用计算机进行图形的计算.处理和显示的相关原理与算法.图形通常由点.线.面.体等几何元素和灰度.色彩.线型.线宽等非几何属性组成.计算机涉及到的几何图形处理一般有 2维到n维图形处理,边界区分,面积计算,体积计算,扭曲变形校正.对于颜色则有色彩空间的计算与转换,图形上色,阴影,色差处理等等. 在破解验证码中需要用

Python——pytessercat识别简单的验证码

什么是验证码 验证码(CAPTCHA)是“Completely Automated Public Turing test to tell Computersand Humans Apart” (全自动区分计算机和人类的图灵测试)的缩写, 是一种区分用户是计算机还是人的公共全自动程序.可以防止:恶意破解密码.刷票.论坛灌水, 有效防止某个黑客对某一个特定注册用户用特定程序暴力破解方式进行不断的登陆尝试. 这个问题可以由计算机生成并评判,但是必须只有人类才能解答.由于计算机无法解答CAPTCHA的问

Python验证码识别:利用pytesser识别简单图形验证码

一.探讨 识别图形验证码可以说是做爬虫的必修课,涉及到计算机图形学,机器学习,机器视觉,人工智能等等高深领域--    简单地说,计算机图形学的主要研究内容就是研究如何在计算机中表示图形.以及利用计算机进行图形的计算.处理和显示的相关原理与算法.图形通常由点.线.面.体等几何元素和灰度.色彩.线型.线宽等非几何属性组成.计算机涉及到的几何图形处理一般有 2维到n维图形处理,边界区分,面积计算,体积计算,扭曲变形校正.对于颜色则有色彩空间的计算与转换,图形上色,阴影,色差处理等等. 在破解验证码中

java识别简单的验证码

1.老规矩,先上图 要破解类似这样的验证码: 拆分后结果: 然后去匹配,得到结果. 2.拆分图片 拿到图片后,首先把图片中我们需要的部分截取出来. 具体的做法是,创建一个的和图片像素相同的一个代表权重的二维数组,遍历图片的每个像素点,如果接近白色,就标记为1,否则标记为0: 然后遍历这个二维数据,如果一个竖排都1,说明是空白列,直到第一次遇到不全为1一列,记住列的下标作为起始值,再次遇到全为1的,记住下标作为结束值,然后从起始列到结束列截取图片,依次类推. 1 //分割图片 2 private

简单的验证码识别

https://blog.csdn.net/qq_35923581/article/details/79487579 这是我尝试写的第一篇技术博客,借鉴了很多博客和教程,写出了自己的代码,代码较为冗杂而且程序十分耗时.所以本文主要提供验证码识别的一个简单的思路,代码实现的部分还望各位大佬指点. 看了好几篇验证码图片识别的博文,不难归纳出验证码识别的大概思路是收集训练集-->图像处理-->得到图片特征值-->训练-->识别,其中图像处理部分又包括了灰度化.二值化.去噪.分割等过程.本

【验证码】使用Tesseract实现简单的验证码识别

1.Tesseract介绍: Tesseract的OCR引擎最先由HP实验室于 1985年开始研发,至1995年时已经成为OCR业内最准确的三款识别引擎之一.然而,HP不久便决定放弃OCR业务,Tesseract也从此尘封. 数年以后,HP意识到,与其将Tesseract束之高阁,不如贡献给开源软件业,让其重焕新生--2005年,Tesseract由美国内华达州信息技 术研究所获得,并求诸于Google对Tesseract进行改进.消除Bug.优化工作. 2.下载 Tesseract: http

c# 利用AForge和百度AI开发实时人脸识别

baiduAIFaceIdentify项目是C#语言,集成百度AI的SDK利用AForge开发的实时人脸识别的小demo,里边包含了人脸检测识别,人脸注册,人脸登录等功能 人脸实时检测识别功能 思路是利用AForge打开摄像头,通过摄像头获取到的图像显示在winform窗体中AForge的控件中,利用AForge控件中的NewFrame事件获取要显示的每一帧的图像,获取图像传输到百度AI平台进行人脸检测,并且将检测结果反馈到界面显示的图像中.在这个过程中有两个问题,获取图像上传到百度AI平台进行

基于百度AI开放平台的人脸识别及语音合成

基于百度AI的人脸识别及语音合成课题 课题需求 (1)人脸识别 在Web界面上传人的照片,后台使用Java技术接收图片,然后对图片进行解码,调用云平台接口识别人脸特征,接收平台返回的人员年龄.性别.颜值等信息,将信息返回到Web界面进行显示. (2)人脸比对 在Web界面上传两张人的照片,后台使用Java技术接收图片,然后对图片进行解码,调用云平台接口比对照片信息,返回相似度. (3)语音识别 在Web页面上传语音文件,判断语音文件格式,如果不是wav格式进行转码处理,然后调用平台接口进行识别,

使用TensorFlow 来实现一个简单的验证码识别过程

本文我们来用 TensorFlow 来实现一个深度学习模型,用来实现验证码识别的过程,这里识别的验证码是图形验证码,首先我们会用标注好的数据来训练一个模型,然后再用模型来实现这个验证码的识别. 1.验证码准备 这里我们使用 python 的 captcha 库来生成即可,这个库默认是没有安装的,所以这里我们需要先安装这个库,另外我们还需要安装 pillow 库 安装好之后,我们就可以用如下代码来生成一个简单的图形验证码 可以看到图中的文字正是我们所定义的内容,这样我们就可以得到一张图片和其对应的