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. java jdk查看源代码

    事实上假设你安装了JDK的话,你就已经拥有了java api的源代码. 安装JDK文件夹下的src.zip文件就是java api的源代码. 比方:C:\Program Files\Java\jdk1 ...

  2. 利用AS3的ByteArray解析SWF的尺寸

    AS3的ByteArray可以用来操作二进制.使用它,我们就获取加载进来的SWF的尺寸. 首先要了解下SWF的文件结构,可以下载官方的PDF看下. 用UltraEdit32打开一个SWF,会看到第一个 ...

  3. mysql 中 unix_timestamp和from_unixtime函数

    1.unix_timestamp 将时间转化为时间戳.(date 类型数据转换成 timestamp 形式整数) 没传时间参数则取当前时间的时间戳 mysql> select unix_time ...

  4. jquery之超简单的div显示和隐藏特效demo

    闲着无聊,看到某视频网站上讲的DIV显示和隐藏的效果,自己也写了一个. 觉得还是挺简单的. 前端改变世界!嘿嘿,还挺有成就感 <!DOCTYPE html PUBLIC "-//W3C ...

  5. 用asp.net还原与恢复sqlserver数据库

    上次做了个项目,涉及到数据库的还原和恢复,到网上找了一下,是利用SQLDMO实现的,只要添加SQLDMO引用就好了,然后利用下边的类的方法就可以实现了. 我把原作者的类扩充了一下,可以自动识别web. ...

  6. hdu 1158-Employment Planning,n*n*n

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1158 解题思路就不多说,动态规划. 值得提及的是题目没有给出数据范围,水过的都默认工人数目不超过100 ...

  7. C# 解决无法识别的属性 configProtectionProvider

    在使用.Net自身提供的加密本配置文件后再用System.Configuration.ConfigurationManager.AppSettings["key"]获取值时会出现“ ...

  8. [Functional Programming] Unbox types with foldMap

    Previously we have seen how to use Concat with reduce: ), Sum(), Sum()] .reduce((acc, x) => acc.c ...

  9. Error: Cannot find module 'express' 之 解决方案

    出现如题错误,是因为执行了#npm install -g express的缘故,express没有被写到package.json里面去. 解决也好办,在程序目录下执行#npm install expr ...

  10. 从零开始编写自己的C#框架(25)——网站部署 【转】

    服务器安全部署文档 目录1.     前言.. 3 2.     部署环境.. 3 2.1         服务器环境信息.. 3 3.     磁盘阵列配置.. 4 4.     安装操作系统.. ...