验证码与数字浏览器与页面不符合

验证码与数字页面不符_百度知道
验证码与数字页面不符
我用手机银行给手机交费短信验证码六位数字页面能填四位办
我有更好的答案
更新吧我都六位数
其他类似问题
为您推荐:
验证码的相关知识
等待您来回答
下载知道APP
随时随地咨询
出门在外也不愁<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
您的访问请求被拒绝 403 Forbidden - ITeye技术社区
您的访问请求被拒绝
亲爱的会员,您的IP地址所在网段被ITeye拒绝服务,这可能是以下两种情况导致:
一、您所在的网段内有网络爬虫大量抓取ITeye网页,为保证其他人流畅的访问ITeye,该网段被ITeye拒绝
二、您通过某个代理服务器访问ITeye网站,该代理服务器被网络爬虫利用,大量抓取ITeye网页
请您点击按钮解除封锁&又到岁末,大家都忙着捞年底最后一桶金,我也不例外,忙着采集数据,不过有时候需要付出一点点时间而已。
在本案例中,我遇到了一个纯数字的电话号码变成了图片需要采集过来,在原网页上以&img src="一个JSP文件地址加一串密码" /&的形式展现给我们,在采集的时候,有人建议我绕过去,直接采图片算了,不过本着对品质的追求,还是觉得应该做到采集的同时转化为文本。
我的思路是这样的,先处理保存0-9及&#8220;-&#8221;的黑白图片到本地磁盘,并分别取名为0.gif,1.gif....9.gif,-.gif,之后采集图片流到内存中,处理成黑白图片后,按长度等分切割,并与本地图片循环比对。这种情况也仅适合于&#8220;纯数字的简单&#8221;图片。请注意,在本案例中,没有纹路识别,只有像素比对。
于是,试验品开始了:首先,得到远端图片的地址,并根据这个地址得到Response出来的图片(注,这是一个流,并非一个真正的图片文件,就像网站上的图片验证码一样。)。
在这里我用到了HttpWebRequest,但是发现直接代入图片地址后GET到的是空白,于是加参数.Referer = "http://该网站的域名",好了,现在远端给了我图片的流。
本段伪代码如下:
&1&HttpWebRequest&objRequest&=&(HttpWebRequest)WebRequest.Create("图片地址");&2&&&&&&&&&&&&&objRequest.Timeout&=&<span style="color: #000;//设置超时10秒&&&&&&&&&3&&&&&&&&&&&&&objRequest.Referer&=&"http://被采网站的域名/";&&&&&&&&&&&&&&4&&&&&&&&&&&&&HttpWebResponse&objResponse&=&(HttpWebResponse)objRequest.GetResponse();&&&&&&&&&&&5&&&&&&&&&&&&&System.IO.Stream&resStream&=&objResponse.GetResponseStream();&&6&&&&&&&&&&&&&从以上代码中,我得到这样一副图片:&7&&&&&&&&&&&&&//保存图片的代码也供上。&8&&&&&&&&&&&&//System.Drawing.Image&i&=&System.Drawing.Image.FromStream(resStream);&9&&&&&&&&&&&&//i.Save(@"c:\x.gif&",&System.Drawing.Imaging.ImageFormat.Gif);<span style="color: #&&&&&&&&&&&&//resStream.Close();<span style="color: #&&&&&&&&&&&&//i.Dispose();&
第二步,图片流得到了,接下来是处理这副图片了。不过在这之前,我还有件重要的事情要做,因为是纯数字的图片,并且可能区号和电话之间有&#8220;-&#8221;符号,所以我必须在本地保存了这些图片的黑白样品,这个过程很简单,就是用PHOTOSHOP去色,然后到调整亮度/对比度,各增加100,即可得到一张黑白的图片,之后将其切分为10*20的小图,分别取名为0.gif,1.gif...9.gif,-.gif一共11个图片。
,之后,我的处理流程是:图片流到内存====》变灰处理=====》加亮度,对比度=====》变黑白处理=====》切分并和本地这11张图片比对
<span style="color: #&&&&&&&&&&&&&&&& Bitmap&iGetPhoto&=&new&Bitmap(resStream);<span style="color: #&&&&&&&&&&&&&&&&&//第一步&变灰度图<span style="color: #&&&&&&&&&&&&&&&&&iGetPhoto&=&ToGray(iGetPhoto);<span style="color: #&&&&&&&&&&&&&&&&&//第二步&增加亮度100<span style="color: #&&&&&&&&&&&&&&&&&iGetPhoto&=&KiLighten(iGetPhoto,&<span style="color: #0);<span style="color: #&&&&&&&&&&&&&&&&&//第三步增加对比度100<span style="color: #&&&&&&&&&&&&&&&&&iGetPhoto&=&KiContrast(iGetPhoto,&<span style="color: #0);<span style="color: #&&&&&&&&&&&&&&&&&//第四步&变黑白<span style="color: #&&&&&&&&&&&&&&&&&iGetPhoto&=&ToBlackWhite(iGetPhoto);
四个函数体:
&&1&&&&&&&&&///&&summary&&&2&&&&&&&&&///&图片变成灰度&&3&&&&&&&&&///&&/summary&&&4&&&&&&&&&///&&param&name="b"&&/param&&&5&&&&&&&&&///&&returns&&/returns&&&6&&&&&&&&&public&Bitmap&ToGray(Bitmap&b)&{&&7&&&&&&&&&&&&&for&(int&x&=&<span style="color: #;&x&&&b.W&x++)&&8&&&&&&&&&&&&&{&&9&&&&&&&&&&&&&&&&&for&(int&y&=&<span style="color: #;&y&&&b.H&y++)&10&&&&&&&&&&&&&&&&&{&11&&&&&&&&&&&&&&&&&&&&&Color&c&=&b.GetPixel(x,&y);&12&&&&&&&&&&&&&&&&&&&&&int&luma&=&(int)(c.R&*&<span style="color: #.3&+&c.G&*&<span style="color: #.59&+&c.B&*&<span style="color: #.11);//转换灰度的算法&13&&&&&&&&&&&&&&&&&&&&&b.SetPixel(x,&y,&Color.FromArgb(luma,&luma,&luma));&14&&&&&&&&&&&&&&&&&}&15&&&&&&&&&&&&&}&16&&&&&&&&&}&17&&&&&&&&&///&&summary&&18&&&&&&&&&///&图像变成黑白&19&&&&&&&&&///&&/summary&&20&&&&&&&&&///&&param&name="b"&&/param&&21&&&&&&&&&///&&returns&&/returns&&22&&&&&&&&&public&Bitmap&ToBlackWhite(Bitmap&b)&{&23&&&&&&&&&&&&&for&(int&x&=&<span style="color: #;&x&&&b.W&x++)&24&&&&&&&&&&&&&{&25&&&&&&&&&&&&&&&&&for&(int&y&=&<span style="color: #;&y&&&b.H&y++)&26&&&&&&&&&&&&&&&&&{&27&&&&&&&&&&&&&&&&&&&&&Color&c&=&b.GetPixel(x,&y);&28&&&&&&&&&&&&&&&&&&&&&if&(c.R&&&(byte)<span style="color: #5)&29&&&&&&&&&&&&&&&&&&&&&{&30&&&&&&&&&&&&&&&&&&&&&&&&&b.SetPixel(x,&y,&Color.FromArgb(<span style="color: #,&<span style="color: #,&<span style="color: #));&31&&&&&&&&&&&&&&&&&&&&&}&32&&&&&&&&&&&&&&&&&}&33&&&&&&&&&&&&&}&34&&&&&&&&&}&35&&&&&&&&&///&&summary&&36&&&&&&&&&///&图像亮度调整&37&&&&&&&&&///&&/summary&&38&&&&&&&&&///&&param&name="b"&&/param&&39&&&&&&&&&///&&param&name="degree"&&/param&&40&&&&&&&&&///&&returns&&/returns&&41&&&&&&&&&public&Bitmap&KiLighten(Bitmap&b,&int&degree)&42&&&&&&&&&{&43&&44&&&&&&&&&&&&&if&(b&==&null)&45&&&&&&&&&&&&&{&46&&47&&&&&&&&&&&&&&&&&return&null;&48&&49&&&&&&&&&&&&&}&50&&51&&52&&53&&&&&&&&&&&&&if&(degree&&&-<span style="color: #5)&degree&=&-<span style="color: #5;&54&&55&&&&&&&&&&&&&if&(degree&&&<span style="color: #5)&degree&=&<span style="color: #5;&56&&57&&58&&59&&&&&&&&&&&&&try&60&&&&&&&&&&&&&{&61&&62&&63&&64&&&&&&&&&&&&&&&&&int&width&=&b.W&65&&66&&&&&&&&&&&&&&&&&int&height&=&b.H&67&&68&&69&&70&&&&&&&&&&&&&&&&&int&pix&=&<span style="color: #;&71&&72&&73&&74&&&&&&&&&&&&&&&&&BitmapData&data&=&b.LockBits(new&Rectangle(<span style="color: #,&<span style="color: #,&width,&height),&ImageLockMode.ReadWrite,&PixelFormat.Format24bppRgb);&75&&76&&77&&78&&&&&&&&&&&&&&&&&unsafe&79&&&&&&&&&&&&&&&&&{&80&&81&&&&&&&&&&&&&&&&&&&&&byte*&p&=&(byte*)data.Scan0;&82&&83&&&&&&&&&&&&&&&&&&&&&int&offset&=&data.Stride&-&width&*&<span style="color: #;&84&&85&&&&&&&&&&&&&&&&&&&&&for&(int&y&=&<span style="color: #;&y&&&&y++)&86&&&&&&&&&&&&&&&&&&&&&{&87&&88&&&&&&&&&&&&&&&&&&&&&&&&&for&(int&x&=&<span style="color: #;&x&&&&x++)&89&&&&&&&&&&&&&&&&&&&&&&&&&{&90&&91&&&&&&&&&&&&&&&&&&&&&&&&&&&&&//&处理指定位置像素的亮度&92&&93&&&&&&&&&&&&&&&&&&&&&&&&&&&&&for&(int&i&=&<span style="color: #;&i&&&<span style="color: #;&i++)&94&&&&&&&&&&&&&&&&&&&&&&&&&&&&&{&95&&96&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&pix&=&p[i]&+&&97&&98&&99&<span style="color: #0&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&if&(degree&&&<span style="color: #)&p[i]&=&(byte)Math.Max(<span style="color: #,&pix);<span style="color: #1&<span style="color: #2&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&if&(degree&&&<span style="color: #)&p[i]&=&(byte)Math.Min(<span style="color: #5,&pix);<span style="color: #3&<span style="color: #4&<span style="color: #5&<span style="color: #6&&&&&&&&&&&&&&&&&&&&&&&&&&&&&}&//&i<span style="color: #7&<span style="color: #8&&&&&&&&&&&&&&&&&&&&&&&&&&&&&p&+=&<span style="color: #;<span style="color: #9&<span style="color: #0&&&&&&&&&&&&&&&&&&&&&&&&&}&//&x<span style="color: #1&<span style="color: #2&&&&&&&&&&&&&&&&&&&&&&&&&p&+=&<span style="color: #3&<span style="color: #4&&&&&&&&&&&&&&&&&&&&&}&//&y<span style="color: #5&<span style="color: #6&&&&&&&&&&&&&&&&&}<span style="color: #7&<span style="color: #8&<span style="color: #9&<span style="color: #0&&&&&&&&&&&&&&&&&b.UnlockBits(data);<span style="color: #1&<span style="color: #2&<span style="color: #3&<span style="color: #4&&&&&&&&&&&&&&&&&return&b;<span style="color: #5&<span style="color: #6&&&&&&&&&&&&&}<span style="color: #7&<span style="color: #8&&&&&&&&&&&&&catch<span style="color: #9&&&&&&&&&&&&&{<span style="color: #0&<span style="color: #1&&&&&&&&&&&&&&&&&return&null;<span style="color: #2&<span style="color: #3&&&&&&&&&&&&&}<span style="color: #4&<span style="color: #5&<span style="color: #6&<span style="color: #7&&&&&&&&&}&<span style="color: #8&<span style="color: #9&&&&&&&&&<span style="color: #0&&&&&&&&&///&&summary&<span style="color: #1&<span style="color: #2&&&&&&&&&///&图像对比度调整<span style="color: #3&<span style="color: #4&&&&&&&&&///&&/summary&<span style="color: #5&<span style="color: #6&&&&&&&&&///&&param&name="b"&原始图&/param&<span style="color: #7&<span style="color: #8&&&&&&&&&///&&param&name="degree"&对比度[-100,&100]&/param&<span style="color: #9&<span style="color: #0&&&&&&&&&///&&returns&&/returns&<span style="color: #1&<span style="color: #2&&&&&&&&&public&Bitmap&KiContrast(Bitmap&b,&int&degree)<span style="color: #3&&&&&&&&&{<span style="color: #4&<span style="color: #5&&&&&&&&&&&&&if&(b&==&null)<span style="color: #6&&&&&&&&&&&&&{<span style="color: #7&<span style="color: #8&&&&&&&&&&&&&&&&&return&null;<span style="color: #9&<span style="color: #0&&&&&&&&&&&&&}<span style="color: #1&<span style="color: #2&<span style="color: #3&<span style="color: #4&&&&&&&&&&&&&if&(degree&&&-<span style="color: #0)&degree&=&-<span style="color: #0;<span style="color: #5&<span style="color: #6&&&&&&&&&&&&&if&(degree&&&<span style="color: #0)&degree&=&<span style="color: #0;<span style="color: #7&<span style="color: #8&<span style="color: #9&<span style="color: #0&&&&&&&&&&&&&try<span style="color: #1&&&&&&&&&&&&&{<span style="color: #2&<span style="color: #3&<span style="color: #4&<span style="color: #5&&&&&&&&&&&&&&&&&double&pixel&=&<span style="color: #;<span style="color: #6&<span style="color: #7&&&&&&&&&&&&&&&&&double&contrast&=&(<span style="color: #0.0&+&degree)&/&<span style="color: #0.0;<span style="color: #8&<span style="color: #9&&&&&&&&&&&&&&&&&contrast&*=&<span style="color: #0&<span style="color: #1&&&&&&&&&&&&&&&&&int&width&=&b.W<span style="color: #2&<span style="color: #3&&&&&&&&&&&&&&&&&int&height&=&b.H<span style="color: #4&<span style="color: #5&&&&&&&&&&&&&&&&&BitmapData&data&=&b.LockBits(new&Rectangle(<span style="color: #,&<span style="color: #,&width,&height),&ImageLockMode.ReadWrite,&PixelFormat.Format24bppRgb);<span style="color: #6&<span style="color: #7&&&&&&&&&&&&&&&&&unsafe<span style="color: #8&&&&&&&&&&&&&&&&&{<span style="color: #9&<span style="color: #0&&&&&&&&&&&&&&&&&&&&&byte*&p&=&(byte*)data.Scan0;<span style="color: #1&<span style="color: #2&&&&&&&&&&&&&&&&&&&&&int&offset&=&data.Stride&-&width&*&<span style="color: #;<span style="color: #3&<span style="color: #4&&&&&&&&&&&&&&&&&&&&&for&(int&y&=&<span style="color: #;&y&&&&y++)<span style="color: #5&&&&&&&&&&&&&&&&&&&&&{<span style="color: #6&<span style="color: #7&&&&&&&&&&&&&&&&&&&&&&&&&for&(int&x&=&<span style="color: #;&x&&&&x++)<span style="color: #8&&&&&&&&&&&&&&&&&&&&&&&&&{<span style="color: #9&<span style="color: #0&&&&&&&&&&&&&&&&&&&&&&&&&&&&&//&处理指定位置像素的对比度<span style="color: #1&<span style="color: #2&&&&&&&&&&&&&&&&&&&&&&&&&&&&&for&(int&i&=&<span style="color: #;&i&&&<span style="color: #;&i++)<span style="color: #3&&&&&&&&&&&&&&&&&&&&&&&&&&&&&{<span style="color: #4&<span style="color: #5&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&pixel&=&((p[i]&/&<span style="color: #5.0&-&<span style="color: #.5)&*&contrast&+&<span style="color: #.5)&*&<span style="color: #5;<span style="color: #6&<span style="color: #7&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&if&(pixel&&&<span style="color: #)&pixel&=&<span style="color: #;<span style="color: #8&<span style="color: #9&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&if&(pixel&&&<span style="color: #5)&pixel&=&<span style="color: #5;<span style="color: #0&<span style="color: #1&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&p[i]&=&(byte)<span style="color: #2&<span style="color: #3&&&&&&&&&&&&&&&&&&&&&&&&&&&&&}&//&i<span style="color: #4&<span style="color: #5&&&&&&&&&&&&&&&&&&&&&&&&&&&&&p&+=&<span style="color: #;<span style="color: #6&<span style="color: #7&&&&&&&&&&&&&&&&&&&&&&&&&}&//&x<span style="color: #8&<span style="color: #9&&&&&&&&&&&&&&&&&&&&&&&&&p&+=&<span style="color: #0&<span style="color: #1&&&&&&&&&&&&&&&&&&&&&}&//&y<span style="color: #2&&&&&&&&&&&&&&&&&}<span style="color: #3&&&&&&&&&&&&&&&&&b.UnlockBits(data);<span style="color: #4&&&&&&&&&&&&&&&&&return&b;&&&&&&&&&&&&<span style="color: #5&&&&&&&&&&&&&}catch<span style="color: #6&&&&&&&&&&&&&{<span style="color: #7&&&&&&&&&&&&&&&&&return&null;<span style="color: #8&&&&&&&&&&&&&}<span style="color: #9&&&&&&&&&}
第三步,所有的准备工作已经完成了,开始比对!内存中有了一副黑白的数字图,它的尺寸是140*20,并且左边空出来7像素,右侧待定,具体看电话号码有几位,可能是3像素,也可能是13像素;本地磁盘中有了0-9.gif,它们的尺寸是10*20,现在要做的就是比对:比对代码如下:
&1&&&&&&&&&&&&&&&&&//读取物理磁盘的文件到内存,注意这个.ToServerPath()是扩展方法,它的原型是HttpContext.Server.Mappath("xxx")&2&&&&&&&&&&&&&&&&&Bitmap[]&numColl&=&{&3&&&&&&&&&&&&&&&&&&&&&new&Bitmap(("/Temp/0.gif").ToServerPath()),&4&&&&&&&&&&&&&&&&&&&&&new&Bitmap(("/Temp/1.gif").ToServerPath()),&5&&&&&&&&&&&&&&&&&&&&&new&Bitmap(("/Temp/2.gif").ToServerPath()),&6&&&&&&&&&&&&&&&&&&&&&new&Bitmap(("/Temp/3.gif").ToServerPath()),&7&&&&&&&&&&&&&&&&&&&&&new&Bitmap(("/Temp/4.gif").ToServerPath()),&8&&&&&&&&&&&&&&&&&&&&&new&Bitmap(("/Temp/5.gif").ToServerPath()),&9&&&&&&&&&&&&&&&&&&&&&new&Bitmap(("/Temp/6.gif").ToServerPath()),<span style="color: #&&&&&&&&&&&&&&&&&&&&&new&Bitmap(("/Temp/7.gif").ToServerPath()),<span style="color: #&&&&&&&&&&&&&&&&&&&&&new&Bitmap(("/Temp/8.gif").ToServerPath()),<span style="color: #&&&&&&&&&&&&&&&&&&&&&new&Bitmap(("/Temp/9.gif").ToServerPath()),<span style="color: #&&&&&&&&&&&&&&&&&&&&&new&Bitmap(("/Temp/-.gif").ToServerPath())<span style="color: #&&&&&&&&&&&&&&&&&};
&1&&&&&&&&&///&&summary&&2&&&&&&&&&///&比较原图和每个小样图,并给出数字结果&3&&&&&&&&&///&&/summary&&4&&&&&&&&&///&&param&name="iGetPhoto"&&/param&&5&&&&&&&&&///&&param&name="numColl"&&/param&&6&&&&&&&&&///&&returns&&/returns&&7&&&&&&&&&public&string&ComparePic(Bitmap&iGetPhoto/*原图*/,&Bitmap[]&numColl/*小图样图集*/)&{&8&&&&&&&&&&&&&int&numCount&=&<span style="color: #;&9&&&&&&&&&&&&&string&result&=&string.E<span style="color: #&&&&&&&&&&&&&for&(int&i&=&<span style="color: #;&i&&&numC&i++)<span style="color: #&&&&&&&&&&&&&{<span style="color: #&&&&&&&&&&&&&&&&&int&x&=&i&*&<span style="color: #&+&<span style="color: #;//原始图的开始取像素位置<span style="color: #&&&&&&&&&&&&&&&&&Bitmap&perBmp&=&new&Bitmap(<span style="color: #,&<span style="color: #);<span style="color: #&&&&&&&&&&&&&&&&&Graphics&gPhoto&=&Graphics.FromImage(perBmp);<span style="color: #&&&&&&&&&&&&&&&&&gPhoto.Clear(Color.White);<span style="color: #&&&&&&&&&&&&&&&&&gPhoto.DrawImage(iGetPhoto/*原图*/,&<span style="color: #,&<span style="color: #,/*目标位置*/&new&Rectangle(new&Point(x,&<span style="color: #),&new&Size(<span style="color: #,&<span style="color: #))/*源位置*/,&GraphicsUnit.Pixel);<span style="color: #&&&&&&&&&&&&&&&&&for&(int&j&=&<span style="color: #;&j&&&<span style="color: #;&j++)//这是数字样图的集合循环<span style="color: #&&&&&&&&&&&&&&&&&{<span style="color: #&&&&&&&&&&&&&&&&&&&&&bool&isTrue&=&true;//接下来循环小图的每一个像素,与大图中裁出的小图作比较,只要一个像素不对,就OVER<span style="color: #&&&&&&&&&&&&&&&&&&&&&for&(int&n&=&<span style="color: #;&n&&&<span style="color: #;&n++)<span style="color: #&&&&&&&&&&&&&&&&&&&&&{<span style="color: #&&&&&&&&&&&&&&&&&&&&&&&&&for&(int&m&=&<span style="color: #;&m&&&<span style="color: #;&m++)<span style="color: #&&&&&&&&&&&&&&&&&&&&&&&&&{<span style="color: #&&&&&&&&&&&&&&&&&&&&&&&&&&&&&Color&point1&=&perBmp.GetPixel(m,&n);<span style="color: #&&&&&&&&&&&&&&&&&&&&&&&&&&&&&Color&point2&=&numColl[j].GetPixel(m,&n);<span style="color: #&&&&&&&&&&&&&&&&&&&&&&&&&&&&&if&(point1.ToArgb()&!=&point2.ToArgb())<span style="color: #&&&&&&&&&&&&&&&&&&&&&&&&&&&&&{<span style="color: #&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&isTrue&=&false;<span style="color: #&&&&&&&&&&&&&&&&&&&&&&&&&&&&&}<span style="color: #&&&&&&&&&&&&&&&&&&&&&&&&&}<span style="color: #&&&&&&&&&&&&&&&&&&&&&}<span style="color: #&&&&&&&&&&&&&&&&&&&&&if&(isTrue)<span style="color: #&&&&&&&&&&&&&&&&&&&&&{<span style="color: #&&&&&&&&&&&&&&&&&&&&&&&&&result&+=&j&==&<span style="color: #&?&"-"&:&j.ToString();<span style="color: #&&&&&&&&&&&&&&&&&&&&&&&&&break;<span style="color: #&&&&&&&&&&&&&&&&&&&&&}<span style="color: #&&&&&&&&&&&&&&&&&}<span style="color: #&&&&&&&&&&&&&&&&&perBmp.Dispose();<span style="color: #&&&&&&&&&&&&&&&&&gPhoto.Dispose();<span style="color: #&&&&&&&&&&&&&}<span style="color: #&&&&&&&&&&&&&return&<span style="color: #&&&&&&&&&}
最后,把零散的调用封装成调用的入口函数:
&1&&&&&&&&&//入口函数&2&&&&&&&&&public&string&GetPicTel(string&url)&3&&&&&&&&&{&4&&&&&&&&&&&&&HttpWebRequest&objRequest&=&(HttpWebRequest)WebRequest.Create(url);&5&&&&&&&&&&&&&objRequest.Timeout&=&<span style="color: #000;//设置尾5秒&&&&&&&&&6&&&&&&&&&&&&&objRequest.Referer&=&"http://你要偷图片的网站域名";&&7&&&&&&&&&&&&&try&8&&&&&&&&&&&&&{&9&&&&&&&&&&&&&&&&&HttpWebResponse&objResponse&=&(HttpWebResponse)objRequest.GetResponse();&&<span style="color: #&&&&&&&&&&&&&&&&&//System.IO.Stream&resStream&=&objResponse.GetResponseStream();<span style="color: #&&&&&&&&&&&&&&&&&//System.Drawing.Image&i&=&System.Drawing.Image.FromStream(resStream);<span style="color: #&&&&&&&&&&&&&&&&&//i.Save(@"c:\x.gif&",&System.Drawing.Imaging.ImageFormat.Gif);<span style="color: #&&&&&&&&&&&&&&&&&//resStream.Close();<span style="color: #&&&&&&&&&&&&&&&&&//i.Dispose();&<span style="color: #&<span style="color: #&&&&&&&&&&&&&&&&&System.IO.Stream&resStream&=&objResponse.GetResponseStream();&&&&&&&&&&&&&&&&<span style="color: #&&&&&&&&&&&&&&&&&Bitmap&iGetPhoto&=&new&Bitmap(resStream);<span style="color: #&&&&&&&&&&&&&&&&&//第一步&变灰度图<span style="color: #&&&&&&&&&&&&&&&&&iGetPhoto&=&ToGray(iGetPhoto);<span style="color: #&&&&&&&&&&&&&&&&&//第二步&增加亮度100<span style="color: #&&&&&&&&&&&&&&&&&iGetPhoto&=&KiLighten(iGetPhoto,&<span style="color: #0);<span style="color: #&&&&&&&&&&&&&&&&&//第三步增加对比度100<span style="color: #&&&&&&&&&&&&&&&&&iGetPhoto&=&KiContrast(iGetPhoto,&<span style="color: #0);<span style="color: #&&&&&&&&&&&&&&&&&//第四步&变黑白<span style="color: #&&&&&&&&&&&&&&&&&iGetPhoto&=&ToBlackWhite(iGetPhoto);<span style="color: #&<span style="color: #&&&&&&&&&&&&&&&&<span style="color: #&<span style="color: #&&&&&&&&&&&&&&&&&//测试图片的结果<span style="color: #&&&&&&&&&&&&&&&&&//iGetPhoto.Save(@"c:\x.gif&",&System.Drawing.Imaging.ImageFormat.Gif);<span style="color: #&&&&&&&&&&&&&&&&&//resStream.Close();<span style="color: #&&&&&&&&&&&&&&&&&//return&string.E<span style="color: #&&&&&&&&&&&&&&&&&Bitmap[]&numColl&=&{<span style="color: #&&&&&&&&&&&&&&&&&&&&&new&Bitmap(("/Temp/0.gif").ToServerPath()),<span style="color: #&&&&&&&&&&&&&&&&&&&&&new&Bitmap(("/Temp/1.gif").ToServerPath()),<span style="color: #&&&&&&&&&&&&&&&&&&&&&new&Bitmap(("/Temp/2.gif").ToServerPath()),<span style="color: #&&&&&&&&&&&&&&&&&&&&&new&Bitmap(("/Temp/3.gif").ToServerPath()),<span style="color: #&&&&&&&&&&&&&&&&&&&&&new&Bitmap(("/Temp/4.gif").ToServerPath()),<span style="color: #&&&&&&&&&&&&&&&&&&&&&new&Bitmap(("/Temp/5.gif").ToServerPath()),<span style="color: #&&&&&&&&&&&&&&&&&&&&&new&Bitmap(("/Temp/6.gif").ToServerPath()),<span style="color: #&&&&&&&&&&&&&&&&&&&&&new&Bitmap(("/Temp/7.gif").ToServerPath()),<span style="color: #&&&&&&&&&&&&&&&&&&&&&new&Bitmap(("/Temp/8.gif").ToServerPath()),<span style="color: #&&&&&&&&&&&&&&&&&&&&&new&Bitmap(("/Temp/9.gif").ToServerPath()),<span style="color: #&&&&&&&&&&&&&&&&&&&&&new&Bitmap(("/Temp/-.gif").ToServerPath())<span style="color: #&&&&&&&&&&&&&&&&&};<span style="color: #&&&&&&&&&&&&&&&&&return&ComparePic(iGetPhoto,&numColl);<span style="color: #&&&&&&&&&&&&&<span style="color: #&&&&&&&&&&&&&<span style="color: #&&&&&&&&&&&&&}<span style="color: #&&&&&&&&&&&&&catch&(Exception&ex)<span style="color: #&&&&&&&&&&&&&{<span style="color: #&&&&&&&&&&&&&&&&&return&string.E<span style="color: #&&&&&&&&&&&&&}<span style="color: #&&&&&&&&&}
&另外,要说明的是,有些验证码(不带扭曲),有倾斜或上下波动的也可以用这种方法搞定,只是需要再多动一点点脑筋.但是带扭曲效果的验证码就是非常专业的事情了,不过我们只用来做采集,不是爆破专家,这种方式应该基本满足应用了.
希望本文可以抛砖引玉,帮你采集到你需要的数据,当然,尽可能地支持别人的版权!也正是因为版权,恕我无法给出原始图片地址.
本文来自如需转载请标明出处。
阅读(...) 评论()}

我要回帖

更多关于 登录页面带验证码模板 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信