【原创】利用腾讯和百度的AI接口识别验证码

news/2024/7/19 9:17:55 标签: 测试, 爬虫, php

  众所周知,验证码在大部分的实际运用中是绕不开的问题,包括验证,爬虫测试等等,然后解决验证码的方法也有不少,但大多数都会运用OCR。(这里说的验证码,是字符类型的验证码)

  目前要解决验证码,有以下几种方法:

  1、用OCR工具,比如tesseract-ocr;

  2、利用各类语言编写的识别库;

  3、想方法绕过验证码,这种测试中运用的多;

  前些天看见腾讯和百度都在已经搞自己的 AI LAB(实际上他们很早就开始了,并且对开发者开放了不少接口,提供使用),AI LAB包含语音识别、文字识别、图像识别,人脸识别、内容审核、数据法分析等等,然后也看到文字识别可以用来识别(字符)验证码,就想着能不能用文字识别的接口来识别验证码,也称“在线OCR”。

  说着就动手实现了,刚好公司的系统后台在登录的时候有个验证码,于是就利用selenium框架写了一个自动登录系统后台的python脚本,腾讯和百度的AI方法都可以实现了。

  首先是利用腾讯 AI 的文字识别方法(腾讯 AI:https://ai.qq.com/),选择通用识别(https://ai.qq.com/product/ocr.shtml),查看技术文档(https://ai.qq.com/doc/ocrgeneralocr.shtml),下载SDK(https://ai.qq.com/doc/sdk.shtml)(SDK只支持Python2,需要支持Python3的下载文章后面链接的代码。),目前只支持PHP和Python。这里注意下,在使用接口之前,需要注册成为开发者,创建应用获得AppID、AppKey,后面会有用到。

  实现方法和思路是截取当前的验证码,然后将截取下来的验证码传给OCR接口识别,待返回识别结果后,就将结果保存,显示在当前窗口。以下是实现方法和具体步骤:

  1)、先访问后台网站,截取验证码;

  验证码需要截取保存,不要点击,也不要刷新,不然每次请求登录的验证码都会变化。

  

  2)、截取验证码之后,传送给OCR接口;

  

  3)、在输入框中输入验证码;

  

  4)、这里需要用到的SDK,在后面的代码链接下载查看。

  利用腾讯 AI 的文字识别方法就是这样了,之后就是用百度 AI 的文字识别方法了。

  利用百度 AI 的文字识别方法(百度 AI:https://ai.baidu.com/),选择通用文字识别(https://ai.baidu.com/tech/ocr/general),查看技术文档(https://ai.baidu.com/docs#/OCR-API/top),下载SDK(https://ai.baidu.com/sdk#ocr),支持的语言要比腾讯多一些,这里选择用Python实现。使用之前一样要申请成为开发者,创建应用获得Access Token(APP_ID,API_KEY,SECRET_KEY)。

  实现方法和前面利用腾讯 AI 一样,截取和保存都是一样的,不一样的就是OCR接口传参和方法不一样,区别比较大。

  OCR验证码接口识别方法:

  

  以上就是利用腾讯和百度 AI 的文字识别在线OCR识别验证码的方法了,实现过程和方法不复杂,比本地安装一些OCR软件简单多了,而且识别率和准确率也比本地化的OCR要高不少。

  腾讯和百度的 AI 接口目前都是免费使用的,不过在使用次数上,两者有区别,但还是能够完全保证日常使用的,下面的链接的是实现的代码,IP地址和开发者账号已做了模糊化处理。

  (PS.注意腾讯 Ai 提供的SDK只支持Python2,链接下的代码已修改为Python3实现。百度的SDK支持Python3,不需要修改。)

  以上内容属于原创,转载需授权,有问题可留言。

转载于:https://www.cnblogs.com/Start12/p/9209839.html


http://www.niftyadmin.cn/n/1383554.html

相关文章

《iOS App界面设计创意与实践》——我们为什么在这里

本节书摘来自异步社区《iOS App界面设计创意与实践》一书中的我们为什么在这里,作者【美】Shawn Welch,更多章节内容可以访问云栖社区“异步社区”公众号查看 我们为什么在这里iOS App界面设计创意与实践问题来了,如何为iPhone和iPad设计和开…

windows 下双网卡在不同网络切换设置

首先你的机器需要有两块网卡,分别接到两台交换机上,ine rnet地址:192.168.1.8,子网掩码:255.255.255.0,网关:192.168.1.1内部网地址:172.23.1.8,子网掩码:255.255.255.0&…

拉斯维加斯算法(转 用来说明算法导论题目!!!)

Monte Carlo algorithm will return an answer that is not necessarilycorrect within a reasonable amount of time.Las Vegas algorithm may take infinite time to compute an answer, butthe answer is guaranteed to be correct. 随机化算法(4) — 拉斯维加斯(Las Vegas)…

配置Cisco Catalyst 4948 使能CNA管理

为CNA准备Catalyst 4500交换机交换机恢复出厂默认恢复命令 switch>enable switch#erase startup-configswitch#reload 若欲使交换机被CNA管理,必须同时具备以下两个条件:具有网络管理IP地址。为g1/1口配置IP Switch#configure Switch(config)#interfa…

《树莓派开发实战(第2版)》——2.7 小结

本节书摘来异步社区《概率编程实战》一书中的第2章,第2.7节,作者:【美】Avi Pfeffer(艾维费弗),更多章节内容可以访问云栖社区“异步社区”公众号查看。 2.7 小结 Figaro使用和其他概率推理系统相同的总体…

Atitit.数据库存储引擎的原理与attilax 总结

Atitit.数据库存储引擎的原理与attilax 总结 1. 存储引擎是什么1 2. 其它数据库系统(包括大多数商业选择)仅支持一种类型的数据存储2 3. 表的存储有三个文件:结构数据索引2 4. 页和字段2 5. 数据存取的选择:行存储还是列存储?3 6. 常见的存储…

中秋节后我们应该如何对于网站进行全面seo优化分析

中秋节三天假期眨眼即逝,今天是上班的第一天了,笔者相信节日期间很多站长还是坚守阵地,但是据笔者所知绝大多数朋友,都放假休假休息了,也就是这 几天网站几乎都处于停滞状态,笔者也是其一,早上过…

Vue组件的创建和注册

组件使用: 步骤: 1. 创建组件构造器,使用Vue.extend() 2. 注册组件,使用Vue.component() (全局注册和局部注册) 3. 使用组件,在Vue实例的作用范围内 <html><body><div id"app"><!-- 3. #app是Vue实例挂载的元素&#xff0c;应该在挂载元素范围内…