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:[email protected]

转载请注明来源: 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

时间: 2024-10-10 02:10:53

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

【Mac + Python + Selenium】之获取验证码图片code并进行登录

初稿代码,可以忽略不计(自己留着看) #!/usr/bin/env python # -*- coding: utf-8 -*- # @Time : 2020/01/15 13:27 # @Author : zc # @File : 115test.py from selenium import webdriver from selenium.webdriver.common.by import By from time import sleep from PIL import Image,Im

python爬虫之获取验证码登陆

#--coding:utf-8#author:wuhao##这里我演示的就是本人所在学校的教育系统#import urllib.requestimport urllib.parseimport reimport shutilimport http.cookiejar class LoginJust(): def __init__(self,url,url1,url2,header,account,pwd): self.url=url self.url1=url1 self.url2=url2 s

使用selenium截屏获取验证码

self.driver = Chrome(CHROME_DRIVER) #初始化对象self.driver.set_window_size(1280, 1024) #设置窗口大小 self.driver.execute_script( 'localStorage.setItem("pre_appadmin_login_2541044284@qq.com",JSON.stringify(%s))' % self.local_storage)#设置localStorage本地缓存 self

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

近期用SSM框架写一个项目,登录模块需要生成验证码图片,我把相关的代码写好了之后传到 jsp ,但是图片不显示,查看控制台显示404,反复查询了一下代码并没有发现任何问题,代码如下: @Controller public class ValidateCodeController { private static final long serialVersionUID = 1L; private static int WIDTH = 70; // 验证码图片的宽度 private static i

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

验证码图片是由程序动态产生的,每次访问的内容都是随机的.那么如何采用程序动态产生图片,并能够显示在客户端页面中呢?原理很简单,对于java而言,我们首先开发一个Servlet,这个Servlet的任务就是给客户端产生一个验证码图片的输入,示例代码如下: import java.awt.Color; import java.awt.Graphics; import java.awt.image.BufferedImage; import java.io.IOException; import ja

获取12306之类的验证码图片

就目前来看12306的图片的URL是变动的,也就是说你拿到URL后打开这个URL可以发现这个图片他不是变动的,这个图片有种简单的方法保存就是直接请求页面xpath解析出URL,将页面图片存储到指定地址即可. 还有一种截图,这种稍微好一些,因为有些网站的验证码的URL是不变的,返回的图片信息在发生变化,而且会携带set-cookie 由于我的电脑浏览器的显示的问题,实际显示出的图片会比实际尺寸要大,所以在裁剪的时候我需要手动的调整位置跟图片大小才能获得图片验证码的正确图片 from seleniu

第二百七十节,Tornado框架-生成验证码图片,以及验证码结合Session验证

Tornado框架-生成验证码图片,以及验证码结合Session验证 第一.生成验证码图片  生成验证码图片需要两个必须模块 1.python自带的random(随机模块) 2.Pillow()图像处理模块里的PIL(图像库),为第三方模块,需要安装 封装验证码图片生成插件py 在封装文件里先导入random(随机模块),和Pillow()图像处理模块里的所需py文件 封装验证码图片生成插件功能,调用后返回验证码图片,和字符串类型验证码,两个返回值 注意:验证码需要一个字体文件,这个字体文件必须

Atitit.获取主板与bios序列号获取硬件设备信息&#160;&#160;Wmi&#160;wmic&#160;的作用

Atitit.获取主板与bios序列号获取硬件设备信息  Wmi wmic 的作用 1 获取硬件核心基础核心基础Wmi1 2 其他资料2 3 Wmic WMI 命令行接口2 4 Atitit.获取主板与bios序列号2 5 参考3 1 获取硬件核心基础核心基础Wmi WMI,是Windows 2K/XP管理系统的核心:对于其他的Win32操作系统,WMI是一个有用的插件.WMI以CIMOM为基础,CIMOM即公共信息模型对象管理器(Common Information Model Object 

输出随机验证码图片

1 /** 2 * //输出随机验证码图片:CAPTCHA图像 3 */ 4 public class ServletDemo1 extends HttpServlet { 5 private static final long serialVersionUID = 1L; 6 7 protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOEx