Atitit.获取验证码图片通过web

Atitit.获取验证码图片通过web

 

1. WebRequest进行较为底层的访问(不推荐) 1

2. WebBrowser截图 1

3. 剪贴板复制法Clipboard(推荐) 1

4. C# 取WebBrowser中图片 可用于获取验证码 1

 

 

1. WebRequest进行较为底层的访问(不推荐)

 

WebBrowser,始终使用WebRequest进行较为底层的访问

 

2. WebBrowser截图

最近和一位朋友探讨获取WebBrowser访问的网页中验证图片的方法,起先想到的就是通过WebClient直接去下载当前页面中引用的验证码图片,但继而想到这会涉及一些问题:一是验证码可能会在每次请求时都发生变化,二是将WebClient与WebBrowser的Cookies甚至Session关联起来是件很难的事。

而后就想到了可以放弃WebBrowser,始终使用WebRequest进行较为底层的访问,以避免多次获取验证码产生变化导致不一致的情况,不过这种办法操作起来还是比较复杂的。

然后又想到这种变通的方法——抓图。只需要直接通过WebBrowser截图,并将验证码以外的部分裁剪掉,就可以了。

作者:: 老哇的爪子 Attilax 艾龙,  EMAIL:1466519819@qq.com

转载请注明来源: http://blog.csdn.net/attilax

 

3. 剪贴板复制法Clipboard(推荐)

4. C# 取WebBrowser中图片 可用于获取验证码

分类: .NET学习2012-11-01 21:52 2634人阅读 评论(1) 收藏 举报

[csharp] view plaincopy

1. /// <summary>  

2. /// 返回指定WebBrowser中图片<IMG></IMG>中的图内容  

3. /// </summary>  

4. /// <param name="WebCtl">WebBrowser控件</param>  

5. /// <param name="ImgeTag">IMG元素</param>  

6. /// <returns>IMG对象</returns>  

7. private Image GetWebImage(WebBrowser WebCtl, HtmlElement ImgeTag)  

8. {  

9.     HTMLDocument doc = (HTMLDocument)WebCtl.Document.DomDocument;  

10.     HTMLBody body = (HTMLBody)doc.body;  

11.     IHTMLControlRange rang = (IHTMLControlRange)body.createControlRange();  

12.     IHTMLControlElement Img = (IHTMLControlElement)ImgeTag.DomElement; //图片地址  

13.     Image oldImage = Clipboard.GetImage();  

14.     rang.add(Img);  

15.     rang.execCommand("Copy"falsenull);  //拷贝到内存  

16.     Image numImage = Clipboard.GetImage();  

17.     try  

18.     {  

19.         Clipboard.SetImage(oldImage);  

20.     }  

21.     catch {}  

22.     return numImage;  

23. }  

 

 

Javascript 实现复制(Copy)动作方法大全_javascript技巧_脚本之家.html

java中操作剪贴板 - #include Cannel_2020  - 博客频道 - CSDN.NET.html

posted @ 2015-04-14 00:34  attilaxAti  阅读(35)  评论(0编辑  收藏  举报