当前位置: 首页 > news >正文

aardio 自动识别验证码输入

技术尝试

上周在发学习日志时有网友提议“在网页上识别验证码”,于是尝试整合图像识别与网页自动化技术,完成了这套模拟登录流程。核心思路是:截图验证码→OCR识别→自动填充表单→提交并验证结果。

代码在这里

import soImage;
import web.view;
import string.html;
import string.ocrLite;
import string.ocrLite.defaultModels;// 创建窗口并显示
var winform = win.form(text="找图代码生成器";right=800;bottom=600)
var wb = web.view(winform); 
winform.show();
//wb.fullscreen()// 截图并保存处理
var img = soImage(); 
response = wb.go("http://127.0.0.1:5500/public/aaa.html")
thread.delay(1000)
img.captureWindow()
img.crop(1052,620,1140,675)
img.setJpegQuality(100)
img.save("./验证码.jpg")
var thumbnail = gdip.image("./验证码.jpg").getThumbnail(400,180);
thumbnail.save("./验证码1.jpg")// 图像文字识别
var imgpath = "./验证码1.jpg"; 
var ocr = string.ocrLite();
var bit = gdip.bitmap(imgpath);
var text = ocr.detectBitmap(bit);  // 自动填充表单并点击登录
for(i, value in table.eachIndex(text.blocks)){//输入用户名var username = wb.cdpWaitQuery("body > div > form > div.mb-4 > input")wb.cdp("DOM.focus",{nodeId = username.nodeId;})wb.cdp("Input.insertText",{text='admin'})//输入密码var password =wb.cdpWaitQuery("#password") ; wb.cdp("DOM.focus",{nodeId = password.nodeId;})wb.cdp("Input.insertText",{text='123456'})//输入验证码var captcha = wb.cdpWaitQuery("#captchaInput");wb.cdp("DOM.focus",{nodeId = captcha.nodeId;}) wb.cdp("Input.insertText",{text=value.text})//点击登录wb.waitEle("#loginForm > div.flex.items-center.justify-between > button","this.click()");thread.delay(1000)var successPage  = wb.cdpWaitQuery("#successPage"); if(successPage){var html = wb.cdp('DOM.getOuterHTML',{nodeId = successPage.nodeId;})for(k,value in html){var save = string.save("./data.html",value)if(save){win.msgbox('保存html成功','提示')}    }        }else {win.msgbox('获取html失败')}    }
win.loopMessage();

因为个人技术问题,没有实现自动找验证码的位置的功能,只能设置验证码的位置截图进行图像识别,到时候需要自己更改位置,有大佬会的话可以改进一下☺

http://www.xdnf.cn/news/959869.html

相关文章:

  • 起重机起升机构的安全装置有哪些?
  • MS21147四路差分线驱动器可P2P兼容SN65MLVD047
  • Python异步编程:深入理解协程的原理与实践指南
  • 篇章一 论坛系统——前置知识
  • 【RAG排序】rag排序代码示例-简单版
  • 开发认知提升
  • 回环接口为什么会监听 IPv6 多播地址 ff02::1?
  • Oauth认证过程中可能会出现什么问题和漏洞?
  • 如何快速进行光伏发电量计算?
  • FAISS:高性能向量库
  • 【web应用】若依框架:若依框架中的页面跳转简介
  • Linux操作系统共享Windows操作系统的文件
  • 人脸识别备案材料明细
  • 从零基于Gazebo实现仿真车辆模型构建
  • unity 输入框 自己定义光标显示逻辑
  • 结构化文件管理实战:实现目录自动创建与归类
  • 【性能篇I】为应用加速:整合 Redis 实现高速缓存
  • RAID存储技术概述
  • 湖北理元理律师事务所:债务清偿方案中的法律技术革新
  • FreeRtos下创建任务失败原因记录
  • 动态元素绑定事件总失效?通过AI 对话框的开发,详解绑定逻辑!
  • @Transactional 什么情况下会失效
  • Linux应用开发之网络套接字编程(实例篇)
  • VMware Workstation踩坑指南
  • Ubuntu 可执行程序自启动方法
  • apt命令介绍
  • 【音乐分析】根据拍号结合bpm计算bar_duration
  • 每日算法题(12-1)ACM输出九九乘法表-20250609
  • DeviceNet转Modbus-RTU协议网关详细解读
  • 医疗AI模型可解释性编程研究:基于SHAP、LIME与Anchor