C# WebBrowser 抓图获取网页验证码
在.NET的WINFORM开发中,大家可能都比较熟悉了WINFORM控件的 DrawToBitmap 方法。但是,如果你使用 WebBrowser 的时候,却发现没有 DrawToBitmap 这个功能,然而,WebBrowser 实际上是有这个功能的, 只是在VS IDE的智能提示列表里面没有显示。
WHY ? 俺也不知道
网页中的验证码,其实是通过一个独立的页面来输出的,例如 CSDN 的登录验证码地址为: http://passport.csdn.net/ShowExPwd.aspx
我们下面用WebBrowser获取这个图片,显示在窗体的PictureBox上。
this.webBrowser1.Navigate("http://passport.csdn.net/ShowExPwd.aspx");
private void webBrowser1_DocumentCompleted(object sender, WebBrowserDocumentCompletedEventArgs e) { Bitmap bmp = new Bitmap(200, 200); webBrowser1.DrawToBitmap(bmp, new Rectangle(0, 0, 300, 300)); this.pictureBox1.Image = bmp; }
需要说明的一点:
如果WebBrowser是动态创建的,则必须可见,否则,抓图是全白,没有内容的。