[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=%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 KeySecret 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 ddddocrocr = ddddocr.DdddOcr(show_ad=False)with open(pmImgFilename, 'rb') as f:img_bytes = f.read()return ocr.classification(img_bytes)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/466598.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【开源】SpringBoot框架开发木马文件检测系统

目录 一、摘要1.1 项目介绍1.2 项目录屏 二、功能模块2.1 数据中心模块2.2 木马分类模块2.3 木马软件模块2.4 安全资讯模块2.5 脆弱点模块2.6 软件检测模块 三、系统设计3.1 用例设计3.2 数据库设计3.2.1 木马分类表3.2.2 木马软件表3.2.3 资讯表3.2.4 脆弱点表3.2.5 软件检测表…

一、Docker部署MySQL

Docker部署MySQL 一、安装Docker二、拉取MySQL镜像1.选择拉取版本2.拉取镜像 三、启动MySQL1.确定好挂载目录2.启动3.查看是否启动4.开启远程访问权限 一、安装Docker 安装教程:https://qingsi.blog.csdn.net/article/details/131270071 二、拉取MySQL镜像 1.选择…

探索Redis特殊数据结构:Geospatial(地理位置)在实际中的应用

一、概述 Redis官方提供了多种数据类型,除了常见的String、Hash、List、Set、zSet之外,还包括Stream、Geospatial、Bitmaps、Bitfields、Probabilistic(HyperLogLog、Bloom filter、Cuckoo filter、t-digest、Top-K、Count-min sketch、Confi…

【Java程序设计】【C00260】基于Springboot的企业客户信息反馈平台(有论文)

基于Springboot的企业客户信息反馈平台(有论文) 项目简介项目获取开发环境项目技术运行截图 项目简介 这是一个基于Springboot的企业客户信息反馈平台 本系统分为平台功能模块、管理员功能模块以及客户功能模块。 平台功能模块:在平台首页可…

基础IO[一]

文件文件内容属性 文件在硬盘上放着,我们的流程->写代码->编译->运行->访问文件。那么本质上是谁在访问? 是进程在访问。进程访问文件是需要通过接口来访问。 文件在磁盘上放着,要向硬件写入文件,谁有权限呢?必须…

【原创 附源码】Flutter安卓及iOS海外登录--Google登录最详细流程

最近接触了几个海外登录的平台,踩了很多坑,也总结了很多东西,决定记录下来给路过的兄弟坐个参考,也留着以后留着回顾。更新时间为2024年2月8日,后续集成方式可能会有变动,所以目前的集成流程仅供参考&#…

Centos7安装nginx yum报错

Centos7安装nginx yum报错,yum源报错解决办法: 1、更新epel源后,出现yum报错 [roothacker117 ~]# yum install epel-release(安装成功) [roothacker117 ~]# yum install nginx(安装失败,提示如…

VTK Python PyQt 监听键盘 控制 Actor 移动 变色

KeyPressInteractorStyle 在vtk 中有时我们需要监听 键盘或鼠标做一些事; 1. 创建 Actor; Sphere vtk.vtkSphereSource() Sphere.SetRadius(10)mapper vtk.vtkPolyDataMapper() mapper.SetInputConnection(Sphere.GetOutputPort()) actor vtk.vtkAc…

【51单片机】AT24C02(江科大、爱上半导体)

一、AT24C02 1.AT24C02介绍 AT24C02是一种可以实现掉电不丢失的存储器,可用于保存单片机运行时想要永久保存的数据信息 存储介质:E2PROM 通讯接口:12C总线 容量:256字节 2.引脚即应用电路 本开发板AT24C02原理图 12C地址全接地,即全为0 WE接地,没有写使能 SCL接P21 S…

Old Money 和 New Money

(1) 我想借用一下:Old Money 和 New Money这两个词,但不是欧洲那种Old Money 和 New Money的定义。 我定义的Old Money是: 人脉关系、资源 信息差、成本差 我定义的New Money是: 科技是第一生产力 2015年以…

Kafka 入门笔记

课程地址 概述 定义 Kafka 是一个分布式的基于发布/订阅模式的消息队列(MQ) 发布/订阅:消息的发布者不会将消息直接发送给特定的订阅者,而是将发布的消息分为不同的类别,订阅者只接受感兴趣的消息 消息队列 消息队…

CTFshow web(php命令执行 55-59)

web55 <?php /* # -*- coding: utf-8 -*- # Author: Lazzaro # Date: 2020-09-05 20:49:30 # Last Modified by: h1xa # Last Modified time: 2020-09-07 20:03:51 # email: h1xactfer.com # link: https://ctfer.com */ // 你们在炫技吗&#xff1f; if(isset($_GET[…