当前位置:编程学习 > C#/ASP.NET >>

C#如何从网页抓取验证码

比如163的验证码,代码如下:
<img id="vcodeImg" class="vCode" style="cursor:pointer;" src="/unireg/call.do?cmd=register.verifyCode&v=common/verifycode/vc_en&env=669465900335&t=1387716242636" alt="验证码" width="120" height="50">

但是从这个src抓取后发现这个是随机分配的,也就是说这个src每次访问返回的图片都不一样。
问题是:
如何抓取这次访问中获得的验证码? --------------------编程问答-------------------- 这个很难的,网上流传的图像识别代码基本都误差非常高,识别能力很差。 --------------------编程问答--------------------
引用 1 楼 erictang2003 的回复:
这个很难的,网上流传的图像识别代码基本都误差非常高,识别能力很差。

先谢谢你的回复,但我的问题不是识别验证码,而是把验证码从网页上抓到客户端来 --------------------编程问答-------------------- 你可以用html分析比如正则表达式,找到这段特征代码啊,然后请求这个图片网址就可以 --------------------编程问答--------------------
引用 3 楼 erictang2003 的回复:
你可以用html分析比如正则表达式,找到这段特征代码啊,然后请求这个图片网址就可以


问题是每次请求这个图片的url返回的图片都不一样 --------------------编程问答-------------------- 你呀,没有理解,我第一次回复你,就说了这个要用图像识别,因为每次返回的图片都不一样,需要分析像素色点来模拟人眼识别出是数字和字母。 --------------------编程问答--------------------
引用 5 楼 erictang2003 的回复:
你呀,没有理解,我第一次回复你,就说了这个要用图像识别,因为每次返回的图片都不一样,需要分析像素色点来模拟人眼识别出是数字和字母。

-,-...可能是我表达不清楚吧,要拿到的不是验证码...而且验证码图片,所以你可能回答我这个。 --------------------编程问答-------------------- 你分析html 得到图片url , 然后用 webClient.DownloadData(url) 就可以得到图片的对象,然后在客户端显示就可以了 --------------------编程问答--------------------
引用 4 楼 AnnieZuo 的回复:
Quote: 引用 3 楼 erictang2003 的回复:

你可以用html分析比如正则表达式,找到这段特征代码啊,然后请求这个图片网址就可以


问题是每次请求这个图片的url返回的图片都不一样


url虽然不同,但img标签的id是相同的,应该总是vcodeImg吧,用HtmlAgility库分析页面元素即可,超级容易,网上示例代码一大片 --------------------编程问答--------------------
引用 7 楼 erictang2003 的回复:
你分析html 得到图片url , 然后用 webClient.DownloadData(url) 就可以得到图片的对象,然后在客户端显示就可以了

依本人之愚见,这个方法估计行不通,通过url来获得图片,网站的验证码,一般都是会变的吧,这个url请求在网页上显示了一次,你在本地显示又是一次,根本不是同一次了,验证码肯定不一样了,想办法把图片直接弄下来,才是正确的选择。不知道我这样说的对不对,我也不过是菜鸟。
另外,我是这样验证的
http://reg.renren.com/xn6245.do?ss=10113&rt=27
然后去看那个验证码的url,发现每次都不对了 --------------------编程问答--------------------
引用 9 楼 Mic_Gary 的回复:
Quote: 引用 7 楼 erictang2003 的回复:

你分析html 得到图片url , 然后用 webClient.DownloadData(url) 就可以得到图片的对象,然后在客户端显示就可以了

依本人之愚见,这个方法估计行不通,通过url来获得图片,网站的验证码,一般都是会变的吧,这个url请求在网页上显示了一次,你在本地显示又是一次,根本不是同一次了,验证码肯定不一样了,想办法把图片直接弄下来,才是正确的选择。不知道我这样说的对不对,我也不过是菜鸟。
另外,我是这样验证的
http://reg.renren.com/xn6245.do?ss=10113&rt=27
然后去看那个验证码的url,发现每次都不对了

艾玛我们的问题一样一样的,我的意思就是说每次访问验证码url得到的图都不一样 --------------------编程问答--------------------
引用 9 楼 Mic_Gary 的回复:
Quote: 引用 7 楼 erictang2003 的回复:

你分析html 得到图片url , 然后用 webClient.DownloadData(url) 就可以得到图片的对象,然后在客户端显示就可以了

依本人之愚见,这个方法估计行不通,通过url来获得图片,网站的验证码,一般都是会变的吧,这个url请求在网页上显示了一次,你在本地显示又是一次,根本不是同一次了,验证码肯定不一样了,想办法把图片直接弄下来,才是正确的选择。不知道我这样说的对不对,我也不过是菜鸟。
另外,我是这样验证的
http://reg.renren.com/xn6245.do?ss=10113&rt=27
然后去看那个验证码的url,发现每次都不对了


话说你是怎么解决的?人人的链接打不开 --------------------编程问答--------------------
引用 8 楼 bigbaldy 的回复:
Quote: 引用 4 楼 AnnieZuo 的回复:

Quote: 引用 3 楼 erictang2003 的回复:

你可以用html分析比如正则表达式,找到这段特征代码啊,然后请求这个图片网址就可以


问题是每次请求这个图片的url返回的图片都不一样


url虽然不同,但img标签的id是相同的,应该总是vcodeImg吧,用HtmlAgility库分析页面元素即可,超级容易,网上示例代码一大片


引用 8 楼 bigbaldy 的回复:
Quote: 引用 4 楼 AnnieZuo 的回复:

Quote: 引用 3 楼 erictang2003 的回复:

你可以用html分析比如正则表达式,找到这段特征代码啊,然后请求这个图片网址就可以


问题是每次请求这个图片的url返回的图片都不一样


url虽然不同,但img标签的id是相同的,应该总是vcodeImg吧,用HtmlAgility库分析页面元素即可,超级容易,网上示例代码一大片


麻烦你给个图片下载的例子吧,百度了对我来讲实在无果啊
补充:.NET技术 ,  C#
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,