没有合适的资源?快使用搜索试试~ 我知道了~
vb.net+VBA+js网络图片ocr识别
需积分: 0 0 下载量 97 浏览量
2024-01-15
02:43:37
上传
评论 1
收藏 253KB DOCX 举报
温馨提示
试读
35页
使用vb.net、VBA、JS、ddddocr,探讨图片中字符识别技术
资源推荐
资源详情
资源评论
vb.net+VBA+js 网络图片 ocr 识别
网友【wodewan】共享的文章《带带弟弟 OCR,纯 VBA 本地获取
网络验证码整体解决方案》
(https://club.excelhome.net/forum.php?mod=viewthread&tid=1666823&ex
tra=page%3D1&ordertype=1&page=1),的确好。好就好在,代码开源、
心思巧妙、对于不同类型的验证码图片,识别率在 90%及以上。向
网友【wodewan】和 DdddOcr 作者致以崇敬。
在【wodewan】共享代码下,彻底解决了:俗话说得,最后一公
里。那就是最终得到了验证码文字。由于本人非专业码字,仅是业
余爱好,所以代码部分是否美观简洁强悍不是俺的菜,俺信奉的是
能否解决问题,其次才是去追求技术升级。第一步都踏不出去,何
来其它,呵呵。
分步解决思路:
一、获取网络验证码图片
至于技术网友提出的那些个专业术语,例如“跨域、同源”俺
技术不到位暂时也不想看,管它咋滴,只要能够达到目的(识别出
图片中的字符)就行。
二、识别验证码图片中的内容为可编辑文字
主要针对【字符】类型图片中的字符测试。其它的类型(相似
图、拉动等)暂不涉及。
三、自动填写三码(准考、身份、验证)【用户名、密码、
验证码】,(查询)按钮一点击。
由于不能展示实际网站,只能测试到 OCR 识别图片中字符这一
步。至于编程获得查询结果,分析结果,那就另外的话题了,在技
术层面,这都不是问题。
四、编程环境:
操作系统:widows server 2022
编程语言:微软 visual studio 2022(vb.net、c#)、VBA
(office Excel 2022)
64 位浏览器控件:谷歌内核 cefsharp
(chromium_90.6.7_windows64)技术版(可以展示图文音视)。
为啥不用其他 cefsharp 版本呢?因为要考虑兼容 windows 7
(10),不支持 xp。
为啥是 64 位而不是 32 位,或者兼有?能逮住老鼠的都是好
猫,碰到哪个用哪个,不纠结。
为啥不用微软的【WebBrowser 】控件呢?不是不想用,是有些
网站不支持该浏览器控件,显示不出来网络验证码图片。
其它:网页 js
五、技术实现思路描述:
1、在 vb.net form 窗体中,必须的引入语句
Imports System.IO
Imports System.Runtime.InteropServices
Imports CefSharp
‘根据自己的需要增减
【Imports System.ComponentModel
Imports System.Data.OleDb
Imports System.Data.SqlClient
Imports System.IO
Imports System.Runtime.InteropServices
Imports System.Text.RegularExpressions
Imports CefSharp】
2、form 窗体 load 阶段
System.Windows.Forms.Control.CheckForIllegalCrossThread
Calls = False
'程序初始化的时候设置了这个属性,而且在你的控件中使用的
都是微软 Framework 类库中的控件的话,系统就不会再抛出错误
了。
【一】、获取网页中的验证码图片
1、三种截图获取验证码图片方式
位置截图、网页直接截图、JS 元素截图
(1)优缺点:
位置截图:需要计算图片在网页中的位置大小,不能遮盖要截
取图片的部位。
网页直接截图:无论是否遮盖网页,都能截取到图片,但需要
后期对网页截图计算验证码图片在网页中的位置大小
JS 元素截图:无论是否遮盖网页,都能从网页中截取到验证码
图片。
提示:还有更多方式可以获取到,暂不介绍了。
推荐:【JS 元素截图】
2、JS 元素截图
通过元素 ID 属性(更简便)获取所需验证码图片信息。
以网页中的 img 元素为例,获取它的 src 网址
Dim ID 关键词 As String="img 元素 ID"
Dim JS 语句 As String = "var divElement =
document.getElementById('" + ID 关键词 +
"');divElement.src"
3、必要的转换过程
不能直接用 vb.net PictureBox 控件使用获得的验证码图片网
址获取图像,否则得到的是不停变换的网络验证码图片,而不是想
要得到的那个正确的图片
提示:经过这三步,已经得到了网页上的验证码图片,下一步
就是使用网友【wodewan】共享的文章《带带弟弟 OCR,纯 VBA 本地
获取网络验证码整体解决方案》中的代码,去识别验证码图片并转
换为可编辑验证码字符
4、保存前三步获取的图片
(也可以参考其他网友关于不保存直接识别的文章,这里首先
实际解决获取网页中的验证码图片,识别字符问题)
【二】、vb.net 封装 VBA,识别验证码
'调用 VBA,获取识别后的验证码
CallVbaFunction()
提示:网友【wodewan】共享的 Excel VBA,需要在原有基础上
改写并增加一个新的 Function 返回值(path As String)函数,以
便 vb.net 从其函数中获取验证码返回值
剩余34页未读,继续阅读
资源评论
qq_32231369
- 粉丝: 45
- 资源: 2
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功