为了账号安全,请及时绑定邮箱和手机立即绑定

在不使用 SRC 的情况下从 Web 浏览器控件获取验证码图像

在不使用 SRC 的情况下从 Web 浏览器控件获取验证码图像

C#
翻过高山走不出你 2021-11-21 14:37:22
我知道这个问题可能听起来很熟悉,谷歌上有很多标题相同的帖子,但相信我,这是不同的。编辑器:VS2008(因技术问题无法升级)题如何在不使用SRC 的情况下从Web 浏览器获取验证码图像?你为什么不使用SRC?下面是我正努力让我的网站验证码图片 https://services.gst.gov.in/services/login(该capta的形象出现,一旦你键入用户名什么)现在,如果您右键单击验证码图像并转到检查元素,您将看到验证码的SRC是:-https://services.gst.gov.in/services/captcha?rnd=0.5313315062651027并且每当您尝试访问该链接时,它都会为您提供与前一个不同的验证码。这就是为什么我不能使用下面的代码,因为它显示的验证码与现在在WebBrowser 中显示的验证码不同。HtmlElement element = webBrowser1.Document.GetElementById("imgCaptcha");string src = element.GetAttribute("src");pictureBox1.Load(element.GetAttribute("src"));
查看完整描述

1 回答

?
潇湘沐

TA贡献1816条经验 获得超6个赞

您可以使用createControlRange创建一个controlRange非文本元素。然后找到图像标签,例如使用id,然后将图像标签添加到控制范围并调用它的execCommand方法执行Copy命令,最后从剪贴板中获取图像:


.NET 3.5


添加对MSHTML. 您可以Microsoft HTML Object Library在COM参考下找到它,然后添加using mshtml;. 然后:


IHTMLElement2 body = (IHTMLElement2)webBrowser1.Document.Body.DomElement;

IHTMLControlRange controlRange = (IHTMLControlRange)body.createControlRange();

IHTMLControlElement element = (IHTMLControlElement)webBrowser1.Document

    .GetElementById("imgCaptcha").DomElement;

controlRange.add(element);

controlRange.execCommand("Copy", false, null);

pictureBox1.Image = (Bitmap)Clipboard.GetDataObject().GetData(DataFormats.Bitmap); 

.NET >= 4.0


您不需要添加引用,您可以利用dynamic:


dynamic body = webBrowser1.Document.Body.DomElement;

dynamic controlRange = body.createControlRange();

dynamic element = webBrowser1.Document.GetElementById("imgCaptcha").DomElement;

controlRange.add(element);

controlRange.execCommand("Copy", false, null);

pictureBox1.Image = (Bitmap)Clipboard.GetDataObject().GetData(DataFormats.Bitmap);

笔记:

  • 当文档完成时运行代码,例如在DocumentCompleted事件中。

  • 此外,您可能希望在代码中添加空检查。

  • 我使用上面的代码通过 id从https://www.google.com获取谷歌徽标hplogo

  • 我还通过浏览https://demos.captcha.com/demos/features/captcha-demo.aspx并通过c_captchademo_samplecaptcha_CaptchaImage作为验证码图像的 id查找验证码图像来测试上述代码。


查看完整回答
反对 回复 2021-11-21
  • 1 回答
  • 0 关注
  • 165 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信