WEB页面验证码自动识别并填充
2019独角兽企业重金招聘Python工程师标准>>>
现在许多页面在登陆的时候都需要根据验证码图片输入验证码,你是否经常碰到类似的想法:我能否自动识别该验证码并自动填充到对应的验证码输入框呢?
在后续的描述中,我将一步一步的完成该想法,概要的步骤如下:
1、需要在本机安装开源的Tesseract-OCR,并下载对应的汉子字库,这里我不详述,网上有许多文章;
2、因为需要自动填充,我们这里实现的方式是使用VB做一个外壳,在这个壳里头放一个webbrowser,说白了这个webbrowser就是一个ie的对象,我们可以在这个IE对象里头浏览网页,当然我们也可以对这个ie对象进行各种操作;
3、在上述的webbrowser打开你需要访问的、带验证码的登陆页面;
4、通过以下方法,将登陆页面上的验证码图片,保存到你的本地硬盘:
'保存网页上图片(按图片链接查找)
Public Function SaveWebImgUrlLike(Web1 As WebBrowser, UrlLike As String, Optional SaveToFile As String, Optional url As String) As Boolean
On Error Resume Next
Dim x
Dim CtrlRange
For Each x In Web1.document.All
If x.tagName = "IMG" Then
If InStr(x.src, UrlLike) > 0 Then
url = x.src
Set CtrlRange = Web1.document.body.createControlRange()
CtrlRange.Add (x)
Clipboard.Clear
CtrlRange.execCommand ("Copy")
End If
End If
Next
On Error Resume Next
If SaveToFile <> "" Then
Kill SaveToFile
SavePicture Clipboard.GetData, SaveToFile
End If
SaveWebImgUrlLike = eRR.Number = 0
Exit Function
eRR:
End Function
'以下是调用上述方法,在这个页面上,这个验证码图片的id为frameValidationServlet
SaveWebImgUrlLike ESSWeb, "frameValidationServlet", App.Path + "/Tesseract-OCR/1.jpg", ""
4、调用Tesseract-OCR的方法将图片转成文本文件
ShellExe App.Path + "/Tesseract-OCR/tesseract.exe ", App.Path + "/Tesseract-OCR/1.jpg " + App.Path + "/Tesseract-OCR/1"
5、读取文本文件中的验证码内容:
'获取随机码
Dim randCode As String
Open App.Path + "/Tesseract-OCR/1.txt" For Input As #1
Do
Line Input #1, randCode
Loop Until EOF(1)
Close (1)
'去除回车
randCode = Replace(randCode, "" + Chr(13), "")
randCode = Replace(randCode, "" + Chr(10), "")
6、将文本文字填充到验证码的框里面:
ESSWeb.document.getElementById("txtVerifyCodes").Value = 识别的验证码
7、其它描述:Tesseract-OCR是个开源产品,如果是白底黑字的情况下,识别率还是非常高的,但如果验证码图片混淆的非常厉害,那效果可能不是太理想了。我的测试页面是联通的ess登陆界面,该图片虽然有混淆,但识别率仍可达到90%以上。该测试网址的网址为:http://esales.10010.com/ ,识别的图片如:
转载于:https://my.oschina.net/hetiangui/blog/133431
WEB页面验证码自动识别并填充相关推荐
- web页面 验证码 生成
web页面 验证码 生成 kaptcha 是一个非常实用的验证码生成工具.有了它,你可以生成各种样式的验证码,因为它是可配置的.kaptcha工作的原理是调用 com.google.code.kapt ...
- web网站验证码自动识别
验证码自动识别 在很多WEB网站登录的时候,都需要输入验证码,Python提供了一些库(例如常用的OCR库)来识别和使用在线图片中的文字. 将图像翻译成文字一般被称为光学文字识别(Optical Ch ...
- java 图形校验_java图形验证码生成工具类 web页面校验验证码
java图形验证码生成工具类 web页面校验验证码 发布于 2020-7-14| 复制链接 摘记: 最近做验证码,参考网上案例,发现有不少问题,特意进行了修改和完善.验证码生成器: ```java i ...
- Web 攻防之业务安全:验证码自动识别 测试.
Web 攻防之业务安全:不安全验证码 测试 验证码安全 也可以叫<全自动区分计算机和人类的图灵测试>,是一种区分用户是计算机还是人的共全自动程序.可以防止:恶意破解密码.刷票.论坛灌水.可 ...
- Web应用验证码方面总结(ASP.NET版)
目录 Web应用验证码方面总结(ASP.NET版) 1 目录 2 修订历史纪录 3 1 验证码在Web应用上的作用 4 2 验证码示例 5 2.1 5 2.2 ma ...
- WEB页面常见安全问题
1.DOS.DDOS攻击 DOS(Denial of Service),拒绝服务,造成远程服务器拒绝服务的行为,叫做DOS攻击. DOS攻击的目的:使计算机或网络无法提供正常的服务. 常见的DOS攻击 ...
- web页面jsp页面的打印
报表在信息系统中占据了极为重要的位置,广义上讲,报表主要以多样的格式呈现和打印动态数据,动态数据主要指保存在数据库中的数据,也可以是文本中的数据.XML数据.Hibernate数据.EJB数据.自定义 ...
- ASP.NET Web 页面生命中的一天
ASP.NET Web 页面生命中的一天 Dino Esposito Wintellect 2003 年 8 月 适用于: Microsoft® ASP.NET 摘要:了解为 ASP.NET Web ...
- 【HTML5初探之绘制图像(上)】看我canvas元素引领下一代web页面
弧度一块可能有误,需要再研究 导航 [初探HTML5之使用新标签布局]用html5布局我的博客页! [HTML5初探之form标签]解放表单验证.增加文件上传.集成拖放 [HTML5初探之绘制图像(上 ...
最新文章
- Vert.x学习笔记(一) Vert.x 核心包
- Win7下U盘安装Ubuntu14.04双系统
- MySQL事务的读脏
- arm-none-eabi-gcc install
- eclipse 汉化教程(语言包)
- 小甲鱼 OllyDbg 教程系列 (十) : Windows 逆向常用 api 以及 XOFTSPY 逆向
- 比较器matlab,用于比较 MATLAB 对象的公共属性的比较器 - MATLAB
- MathWorks 中国
- Javascript实现完美继承
- linux运行check1n越狱,checkra1n越狱教程linux
- OCR文字识别算法总结
- 微信小程序实现图片翻转效果
- 快速部署安装libart_lgp
- 巴黎报纸对拿破仑的描述
- 中画幅相机焦距水平视角_摄影中的“中画幅”是什么?
- Ip地址基础--全篇无废话
- AI 大数据在数据隐私保护下如何普惠共享?CCF TF「联邦学习」研讨会给出了答案
- 【Keil5 C51】AT89C52 做流水灯实验(调用C51的库函数_crol_)
- make xconfig详解
- 华科图书情报专硕考研复试与读研
- linear-gradient 实现切角效果
热门文章
- 中的9000端口代表什么_电气施工图纸中这些符号代表什么?
- 什么是“私域流量” 和“公域流量”
- python实现kindle每天推送博客1----kindle推送原理,python实现qq邮箱登录及邮件发送
- ppt工作汇报免费模板
- Mac App 破解之路八 病毒程序分析
- C++书籍推荐之入门进阶封神C++书籍大全!
- 数据资产确权认责,确什么权,认什么责?
- php 从数组里删除元素,PHP从数组中删除元素的四种方法实例
- java构造函数调用构造函数
- 最短路+最小费用+线性规划(钢管订购和运输问题)