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页面验证码自动识别并填充相关推荐

  1. web页面 验证码 生成

    web页面 验证码 生成 kaptcha 是一个非常实用的验证码生成工具.有了它,你可以生成各种样式的验证码,因为它是可配置的.kaptcha工作的原理是调用 com.google.code.kapt ...

  2. web网站验证码自动识别

    验证码自动识别 在很多WEB网站登录的时候,都需要输入验证码,Python提供了一些库(例如常用的OCR库)来识别和使用在线图片中的文字. 将图像翻译成文字一般被称为光学文字识别(Optical Ch ...

  3. java 图形校验_java图形验证码生成工具类 web页面校验验证码

    java图形验证码生成工具类 web页面校验验证码 发布于 2020-7-14| 复制链接 摘记: 最近做验证码,参考网上案例,发现有不少问题,特意进行了修改和完善.验证码生成器: ```java i ...

  4. Web 攻防之业务安全:验证码自动识别 测试.

    Web 攻防之业务安全:不安全验证码 测试 验证码安全 也可以叫<全自动区分计算机和人类的图灵测试>,是一种区分用户是计算机还是人的共全自动程序.可以防止:恶意破解密码.刷票.论坛灌水.可 ...

  5. Web应用验证码方面总结(ASP.NET版)

    目录 Web应用验证码方面总结(ASP.NET版)    1 目录    2 修订历史纪录    3 1 验证码在Web应用上的作用    4 2 验证码示例    5 2.1    5 2.2 ma ...

  6. WEB页面常见安全问题

    1.DOS.DDOS攻击 DOS(Denial of Service),拒绝服务,造成远程服务器拒绝服务的行为,叫做DOS攻击. DOS攻击的目的:使计算机或网络无法提供正常的服务. 常见的DOS攻击 ...

  7. web页面jsp页面的打印

    报表在信息系统中占据了极为重要的位置,广义上讲,报表主要以多样的格式呈现和打印动态数据,动态数据主要指保存在数据库中的数据,也可以是文本中的数据.XML数据.Hibernate数据.EJB数据.自定义 ...

  8. ASP.NET Web 页面生命中的一天

    ASP.NET Web 页面生命中的一天  Dino Esposito Wintellect 2003 年 8 月 适用于: Microsoft® ASP.NET 摘要:了解为 ASP.NET Web ...

  9. 【HTML5初探之绘制图像(上)】看我canvas元素引领下一代web页面

    弧度一块可能有误,需要再研究 导航 [初探HTML5之使用新标签布局]用html5布局我的博客页! [HTML5初探之form标签]解放表单验证.增加文件上传.集成拖放 [HTML5初探之绘制图像(上 ...

最新文章

  1. Vert.x学习笔记(一) Vert.x 核心包
  2. Win7下U盘安装Ubuntu14.04双系统
  3. MySQL事务的读脏
  4. arm-none-eabi-gcc install
  5. eclipse 汉化教程(语言包)
  6. 小甲鱼 OllyDbg 教程系列 (十) : Windows 逆向常用 api 以及 XOFTSPY 逆向
  7. 比较器matlab,用于比较 MATLAB 对象的公共属性的比较器 - MATLAB - MathWorks 中国
  8. Javascript实现完美继承
  9. linux运行check1n越狱,checkra1n越狱教程linux
  10. OCR文字识别算法总结
  11. 微信小程序实现图片翻转效果
  12. 快速部署安装libart_lgp
  13. 巴黎报纸对拿破仑的描述
  14. 中画幅相机焦距水平视角_摄影中的“中画幅”是什么?
  15. Ip地址基础--全篇无废话
  16. AI 大数据在数据隐私保护下如何普惠共享?CCF TF「联邦学习」研讨会给出了答案
  17. 【Keil5 C51】AT89C52 做流水灯实验(调用C51的库函数_crol_)
  18. make xconfig详解
  19. 华科图书情报专硕考研复试与读研
  20. linear-gradient 实现切角效果

热门文章

  1. 中的9000端口代表什么_电气施工图纸中这些符号代表什么?
  2. 什么是“私域流量” 和“公域流量”
  3. python实现kindle每天推送博客1----kindle推送原理,python实现qq邮箱登录及邮件发送
  4. ppt工作汇报免费模板
  5. Mac App 破解之路八 病毒程序分析
  6. C++书籍推荐之入门进阶封神C++书籍大全!
  7. 数据资产确权认责,确什么权,认什么责?
  8. php 从数组里删除元素,PHP从数组中删除元素的四种方法实例
  9. java构造函数调用构造函数
  10. 最短路+最小费用+线性规划(钢管订购和运输问题)