python(自动化)利用selenium+百度ocr文字识别验证码实现自动登陆登陆CET-四级报名系统
操作步骤:
1:登陆打开CET-考试系统
2:填写相关登陆信息
3:调用百度ocr实现文字验证码识别
4:实现登陆
如何使用和调用百度ocr文字识别接口
1:进入百度AI开发平台:链接
2:在页面上选择进入控制台:
3:登陆百度账号(没有百度账号的需要先注册)
4:进来后点击文字识别
5:进来后再点击创建应用(这里我已创建好)
6:获取我门需要的三个信息,后面代码需要用到
即AppID,APIkey,SecretKey
代码需要用到的python库:
1: selenium
2: time(时间模块,用于适当的时间加载限制)
3:PIL(图像处理模块,也可用Open-cv模块代替实现相关需求)
4: baidu-aip模块
少数人可能在from aip import AipOcr 这段代码就报错了,原因是你没有安装百度的接口,不过没关系,你只需要用cmd进入你安装Python的路径下执行 pip install baidu-aip 即可!
下面进入代码环节(有注释):
#利用百度ocr识别自动登陆四级考试网并进入报名页面
from selenium import webdriver
from time import sleep
from PIL import Image
from aip import AipOcr
from selenium.webdriver.support.select import Select
from selenium.common.exceptions import UnexpectedAlertPresentException#驱动的加载和访问页面
driver = webdriver.Chrome()
driver.maximize_window()
#设置页面加载时间
driver.set_page_load_timeout(20)
driver.set_script_timeout(20)
#CET-考试系统网址
url = 'http://cet-bm.neea.edu.cn/'
driver.get(url)#点击进入报名页面
driver.find_element_by_xpath('//*[@id="main_l"]/a[1]/p[1]').click()
#填写相关信息
username = '######' #这里填写你的登陆用户名,如手机号
password = '#####' #这里输入你的登陆密码
driver.find_element_by_xpath('//*[@id="txtUserName"]').send_keys(username)
driver.find_element_by_xpath('//*[@id="txtPassword"]').send_keys(password)
driver.implicitly_wait(3) #隐式等待"""截屏并调用百度ocr文字识别输入验证码"""
while True:driver.find_element_by_xpath('//*[@id="txtCheckImageValue"]').clear() #每次执行前清空输入栏screenImg = r'D:\python\1.png' #截图图片的存储路径,我这里放入我的相关目录,你也可以更改r'###'的内容#截图整个窗口的图,据此后面再根据坐标信息截图特定验证码位置的图driver.get_screenshot_as_file(screenImg)#获取验证码图片的位置坐标信息location = driver.find_element_by_xpath('//*[@id="imgCheckImage"]').location#获取验证码图片的尺寸大小size = driver.find_element_by_xpath('//*[@id="imgCheckImage"]').size#获取截图所需的位置信息left = int(location['x'])top = int(location['y'])right = int(location['x']+size['width'])bottom = int(location['y']+size['height'])#由上面的坐标信息截图特定区域,得到验证码截图img = Image.open(screenImg).crop((left,top,right,bottom))img.save(screenImg)#定义百度ocr相关变量,将你的前面百度复制三个信息填入其中AppID = '#########'APIKey = '##########'SecretKey = '#########'#初始化操作client = AipOcr(AppID,APIKey,SecretKey)i = open(screenImg,'rb') #以rb方式打开目标路径图片即验证码截图img = i.read() #读取截图message = client.basicGeneral(img)print(message)for i in message.get('words_result'):print(i,i.get('words'))if message.get('words_result') != []:driver.find_element_by_xpath('//*[@id="txtCheckImageValue"]').send_keys(i.get('words'))else:driver.find_element_by_xpath('//*[@id="txtCheckImageValue"]').send_keys('识别不出来')#判断登陆情况据此执行不同操作try:#点击登陆按钮driver.find_element_by_xpath('//*[@id="ibtnLogin"]').click()if u'欢迎使用CET考试报名系统' not in driver.title:print("窗口弹出,验证码错误")#由于登陆失败会弹出对话框,下面是处理弹出的对话框alert = driver.switch_to.alertsleep(2)alert.accept()else:print("登陆成功!!")breakexcept UnexpectedAlertPresentException:print("重新登陆......")driver.implicitly_wait(3)#注意重新登陆尝试需要对几个输入框都清空username = "#######" #这里输入你的用户名password = "######" #这里输入你的密码driver.find_element_by_xpath('//*[@id="txtUserName"]').clear()driver.find_element_by_xpath('//*[@id="txtUserName"]').send_keys(username)driver.find_element_by_xpath('//*[@id="txtPassword"]').clear()driver.find_element_by_xpath('//*[@id="txtPassword"]').send_keys('password')print("恭喜,您已成功通过识别验证码")
The End!!创作不易,欢迎点赞/评论!!欢迎关注个人公众号
python(自动化)利用selenium+百度ocr文字识别验证码实现自动登陆登陆CET-四级报名系统相关推荐
- UIPATH 调用第三方接口(百度OCR文字识别举例)
业务场景: 使用RPA获取业务系统网站的验证码截图,将截图转base64之后传到百度OCR文字识别接口,获取文字识别结果,将识别结果用作登陆业务系统的验证码凭证.从而解决RPA自动登录系统的问题. 设 ...
- 百度OCR文字识别-Android安全校验
百度OCR文字识别-Android安全校验 本文转载自好基友upuptop:https://blog.csdn.net/pyfysf/article/details/86438769 效果图: 如下为 ...
- 百度OCR文字识别API使用心得 com.baidu.ocr.sdk.exception.SDKError[283604]
百度OCR文字识别API使用心得 com.baidu.ocr.sdk.exception.SDKError[283604] 本文转载自好基友upuptop:https://blog.csdn.net/ ...
- Java调用百度OCR文字识别的接口
调用百度OCR文字识别的接口,来自于百度官网,亲测可以使用 跳转链接 FileUtil的下载链接 Base64Util下载链接 HttpUtil下载链接 GsonUtils下载链接 Accurate. ...
- android百度识别,百度OCR文字识别-Android安全校验
效果图: 如下为文章正文: 百度OCR接口使用总结: 之前总结一下关于百度OCR文字识别接口的使用步骤(Android版本 不带包名配置 安全性弱).这边博客主要介绍,百度OCR文字识别接口,官方推荐 ...
- Java调用百度OCR文字识别API实现图片文字识别软件
java_baidu_ocr Java调用百度OCR文字识别API实现图片文字识别软件 这是一款小巧方便,强大的文字识别软件,由Java编写,配上了窗口界面 调用了百度ocr文字识别API 识别精度高 ...
- 百度OCR文字识别及使用案例
百度OCR文字识别使用案例 案例环境 Windows10.Jdk1.8.IDEA2019.3.5旗舰版 一.账号注册及创建应用 1.访问地址: https://ai.baidu.com/tech/oc ...
- Android百度ocr相机裁剪,百度OCR文字识别案例_android防止akamp;sk;泄漏版本
[实例简介] 百度OCR文字识别,支持手机拍照识别,相册选择识别.网络图片识别等功能.该demo的配文博客为https://blog.csdn.net/pyfysf/article/details/8 ...
- 百度OCR 文字识别 Android安全校验
百度OCR接口使用总结: 之前总结一下关于百度OCR文字识别接口的使用步骤(Android版本 不带包名配置 安全性弱).这边博客主要介绍,百度OCR文字识别接口,官方推荐使用方式,授权文件(安全模式 ...
最新文章
- python装饰器学习
- python 2 3 读写中文文件 使用codecs最方便
- Kubernetes用户指南(二)--部署组合型的应用、连接应用到网络中
- mysql innodb log_教你如何理解mysql中的innoDB log
- OpenJudge NOI 1.8 15:细菌的繁殖与扩散
- Windows x64平台 获取PEB表,并获取kernel32.dll的基址,并获取它的函数
- vector使用中可能出现的一个陷阱
- 自动化用例设计原则+web自动化框架
- SQUEEZENET: ALEXNET-LEVEL ACCURACY WITH 50X FEWER PARAMETERS AND 0.5MB MODEL SIZE
- linux 文件系统简介
- android大作业源代码,大作业源代码.doc
- iec611313标准下载_欧姆龙PLC编程软件中功能块的使用方法
- java 万年历接口_农历计算,农历查询API接口,万年历农历查询,农历+禁忌查询 |在线免费 API...
- OA发展建议有奖调研内容
- 怎么把PDF图片转换成PPT
- Python数模笔记-NetworkX(5)关键路径法
- 线性代数(numpy.linalg)
- 武汉市10月双软认定好处、认定条件及9月认定名单公示
- eclipse离线安装PyDev
- ​IBM、Google、Oracle三巨头的公有云之殇(下)
热门文章
- DCCI:“文章事件”等话题引爆微博用户活跃度
- npm run dev error:0308010C:digital envelope routines::unsupported
- 货车运输(LCA+最大生成树)
- 【ccf】202012-4 食材运输【贪心、dfs、状压dp、二分】
- 常用CSS3标签及个性效果
- DevelopTraining(20)---执行网络操作
- 树莓派显示不能全屏问题解决记录
- iOS13.2beta1来袭,又来新功能了!看来十一没放假
- springboot项目的基本架构原理图
- HTML5+CSS3海绵宝宝网站设计(3)