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", 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

Atitit.获取验证码图片通过web的更多相关文章

  1. js 跨域访问 获取验证码图片 获取header 自定义属性

    1.net core web api 后端 /// <summary> /// 图形验证码 /// </summary> [HttpGet] public IActionRes ...

  2. b站滑动验证码图片的获取-python

    本文仅是获取验证码图片,python+selenium实现 图片的处理,算出偏移位置网上都有现成的:而由于b站的更新,图片的获取则与之前完全不同,不能直接从html中拿到 过程比较曲折所以记录一下,可 ...

  3. python爬虫之获取验证码登陆

    #--coding:utf-8#author:wuhao##这里我演示的就是本人所在学校的教务系统#import urllib.requestimport urllib.parseimport rei ...

  4. DelphiXE10.2.3——跨平台生成验证码图片

    $("#img-code").bind( 'click', function () { $(this).attr('src','VerifyCode?t='+Math.random ...

  5. 【转】DelphiXE10.2.3——跨平台生成验证码图片

    原文地址 Java.PHP.C#等很容易在网上找到生成验证码图片的代码,Delphi却寥寥无几,昨天花了一整天时间,做了个跨平台的验证码,可以用在C/S和B/S端,支持Windows.Linux.An ...

  6. python2 生成验证码图片

    使用pillow或者pil库编写 #coding:utf-8 #use pillow or pil try: from PIL import Image, ImageDraw, ImageFont, ...

  7. SpringMVC生成的验证码图片不显示

    近期用SSM框架写一个项目,登录模块需要生成验证码图片,我把相关的代码写好了之后传到 jsp ,但是图片不显示,查看控制台显示404,反复查询了一下代码并没有发现任何问题,代码如下: @Control ...

  8. Web验证码图片的生成-基于Java的实现

    验证码图片是由程序动态产生的,每次访问的内容都是随机的.那么如何采用程序动态产生图片,并能够显示在客户端页面中呢?原理很简单,对于java而言,我们首先开发一个Servlet,这个Servlet的任务 ...

  9. Linux 部署java web 项目,验证码图片不显示文字问题

    系统上线后,在获取验证码接口时,获取的验证码图片上没有对应的验证码数字,经过验证后,是由于Linux缺少字体造成的. 正常我们也可以将window的字体直接上传到linux服务器上,window的字体 ...

随机推荐

  1. HTML5画:线、圆、矩形、渐变

    示例一:矩形 <!DOCTYPE html><head> <meta charset=utf-8> <title>HTML5画线.圆.矩形</ti ...

  2. mac的dns缓存查询和清除

    1.清楚dns缓存 dscacheutil -flushcache 2.查询nslookup

  3. 一个十分简洁实用的MD风格的UI主框架

    2017-5-23 详见:https://github.com/baiqiantao/CheesesquareSample MainActivity public class MainActivity ...

  4. .NET 代码注入 CodeInject

    CInject (or CodeInject) 允许直接往托管的代码中注入代码,而无需反编译.可在单个或者多个方法中注入你要执行的代码.使用 CInject 时你无需了解目标应用的细节,你通过注入来轻 ...

  5. jQuery序列化表单数据 serialize()、serializeArray()及使用

    1.serialize() 方法: serialize() 方法通过序列化表单值,创建 URL 编码文本字符串. 您可以选择一个或多个表单元素(比如 input 及/或 文本框),或者 form 元素 ...

  6. 【云计算】Docker 多进程管理方案

    docker容器内多进程的管理方案 时间 2015-05-08 00:00:00                                               涯余            ...

  7. Thinkphp学习笔记-模板主题

    一个模块如果需要支持多套模板文件的话,就可以使用模板主题功能. 默认情况下,没有开启模板主题功能,如果需要开启,设置 DEFAULT_THEME 参数即可: // 设置默认的模板主题 'DEFAULT ...

  8. [AngularJS] Angular 1.3 new $q constructor

    <!DOCTYPE html> <html ng-app="app"> <head lang="en"> <meta ...

  9. JQuery中attr属性和jQuery.data()学习笔记

    用html直接data-key来存放,key必须全部小写. <div data-mydata="123"></div> consoloe.log($(&qu ...

  10. 使用Jmeter对应用程序进行测试

    JMeter是Apache组织的开放源代码项目,它是功能和性能测试的工具,100%的用java实现,最新的版本是1.9.1,大家可以到 http://jakarta.apache.org/jmeter ...