标签:
Atitit.获取验证码图片通过web
4. C# 取WebBrowser中图片 可用于获取验证码 1
WebBrowser,始终使用WebRequest进行较为底层的访问
最近和一位朋友探讨获取WebBrowser访问的网页中验证图片的方法,起先想到的就是通过WebClient直接去下载当前页面中引用的验证码图片,但继而想到这会涉及一些问题:一是验证码可能会在每次请求时都发生变化,二是将WebClient与WebBrowser的Cookies甚至Session关联起来是件很难的事。
而后就想到了可以放弃WebBrowser,始终使用WebRequest进行较为底层的访问,以避免多次获取验证码产生变化导致不一致的情况,不过这种办法操作起来还是比较复杂的。
然后又想到这种变通的方法——抓图。只需要直接通过WebBrowser截图,并将验证码以外的部分裁剪掉,就可以了。
作者:: 老哇的爪子 Attilax 艾龙, EMAIL:1466519819@qq.com
转载请注明来源: http://blog.csdn.net/attilax
分类: .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", false, null); //拷贝到内存
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
标签:
原文地址:http://blog.csdn.net/attilax/article/details/45035467