需要做一个系统工具,抓取一些数据,遇到了验证码问题:
如何获得网页中验证码图片的内容。
想法:
1、通过验证码图片地址,读取URL,然后从浏览器缓存读取缓存文件
问题:缓存读取有权限限制,不可行
2、通过mshtml获取验证码图片的一个内存拷贝并放置在剪切板
问题:容易把剪切板弄脏,而且,关键是你刚放进去,又被别的地方冲突了,还不能并发
3、网络有说拦截wininet来实现流的拦截
问题:一直没有解决,说是IE11无效,偏偏我的就是IE11,也需要考虑IE11
4、向通过WebClient或WebRequest来下载验证码图片
问题:没办法与内嵌的WebBrowser共享会话(尝试过修改COOKIE,没达成目的)
5、mshtml有Render接口,不知道有没有类似的接口通过mshtml获得img对象的内存流
问题:mshtml文档参考几乎为零
请问:
有什么好的办法能解决?
谢谢!
通过2解决。剪切板做一个并发控制和重试机制。基本能用了。
我使用的是4,以及js获取base64
直接get验证码的url就行了,有的需要cookie,就提交cookie,解决不了可以发出你验证码的URL