读书人

怎么截取 页面上的验证码图片

发布时间: 2013-07-20 11:07:48 作者: rapoo

如何截取 页面上的验证码图片?
比如 要拉取别的网站上的 验证码,然后显示在自己网页上。

怎么能获取到他的图片的地址呢? 我看页面源代码关于验证码这块如下:



[解决办法]
这样做的意义何在,自己做个验证码也不是很困难的事情。
[解决办法]
验证码识别??

[解决办法]
该回复于2010-12-10 13:19:24被版主删除
[解决办法]
用于验证码图片识别的类(C#源码)


[解决办法]
自己直接做个验证码就可以了撒。。。。
[解决办法]
自己做个

protected void Page_Load(object sender, EventArgs e)
{
if (!this.IsPostBack)
{
//生成验证码
string temp = this.GetCode(4);
HttpCookie cookie = new HttpCookie("yzm");
cookie.Value = temp;
Response.Cookies.Add(cookie);
//画图


this.GetCheckCodeImage(temp);
}
}
//产生随机字符串
private string GetCode(int num)
{
string[] source ={ "1", "2", "3", "4", "5", "6", "7", "8", "9", "A", "B", "C", "D", "E", "F", "G", "H", "I", "J",
"K", "L", "M", "N", "O","P", "Q", "R", "S", "T", "U", "V", "W", "X", "Y", "Z" ,"a", "b", "c", "d", "e", "f", "g", "h", "i", "j",
"k", "l", "m", "n", "o", "p", "q", "r", "s", "t", "u", "v", "w", "x", "y","z"};
string code = "";
Random rd = new Random();
for (int i = 0; i < num; i++)
{
code += source[rd.Next(0, source.Length)];
}
Session["ValidateCode"] = code;//将字符串保存到Session中,以便需要时进行验证
return code;

}
#region 验证码
/// <summary>
/// 生成验证码
/// </summary>
/// <param name="checkCode"></param>
private void GetCheckCodeImage(string checkCode)
{
if (checkCode == null
[解决办法]
checkCode.Trim() == String.Empty) return;

System.Drawing.Bitmap image = new System.Drawing.Bitmap((int)Math.Ceiling((checkCode.Length * 12.5)),25);
Graphics g = Graphics.FromImage(image);
try
{


Random random = new Random(); //生成随机生成器
g.Clear(Color.White); //清空图片背景色
for (int i = 0; i < 5; i++) //画图片的背景噪音线
{
int x1 = random.Next(image.Width);
int x2 = random.Next(image.Width);
int y1 = random.Next(image.Height);
int y2 = random.Next(image.Height);
g.DrawLine(new Pen(Color.Silver), x1, y1, x2, y2);
}
Font font = new System.Drawing.Font("Arial", 12, (System.Drawing.FontStyle.Bold
[解决办法]
System.Drawing.FontStyle.Italic));
System.Drawing.Drawing2D.LinearGradientBrush brush = new System.Drawing.Drawing2D.LinearGradientBrush(new Rectangle(0, 0, image.Width, image.Height), Color.Blue, Color.DarkRed, 1.2f, true);
g.DrawString(checkCode, font, brush, 2, 2);

//画图片的前景噪音点
for (int i = 0; i < 60; i++)
{
int x = random.Next(image.Width);
int y = random.Next(image.Height);

image.SetPixel(x, y, Color.FromArgb(random.Next()));


}

//画图片的边框线
g.DrawRectangle(new Pen(Color.Silver), 0, 0, image.Width - 1, image.Height - 1);
System.IO.MemoryStream ms = new System.IO.MemoryStream();
image.Save(ms, System.Drawing.Imaging.ImageFormat.Gif);
Response.ClearContent();
Response.ContentType = "image/Gif";
Response.BinaryWrite(ms.ToArray());
}
finally
{
g.Dispose();
image.Dispose();
}
}

#endregion


[解决办法]
图片识别技术
[解决办法]
http://topic.csdn.net/u/20100807/12/9ea012ab-e58e-4d94-bb20-3f66089cb97b.html#r_67559314
[解决办法]
不能识别,首先要保证你识别出的结果正确,再次就是的代码HttpWebRequest的方法与浏览器的一致,如UserAgent等信息
[解决办法]
可以自己生成啊 干嘛截取
你是不是想抓取被人网页数据而自动输入验证码啊。
[解决办法]
引用:
我不是 搞识别。。。~~~~(>_<)~~~~

如果这样能轻易被解决了,那暴利破解,暴利注册岂不是又泛滥了。。。。
[解决办法]
把这个验证码的网页强型转换成图片,打开网页中的代码,看他session的名字,然后在你自己代码中写判断,输入的与session中的值是否一至!如果一至则验证通过!不一至则验证失败!
[解决办法]
验证码先是写好在一个页面中的,原后在你要显示的那个面页new一个image控件强转网页为图片,输入的时候是取得网页中的session,原后与你输入的值进行对比,正确就验证通过!
[解决办法]
到LZ得网上貌似算是跨域了吧?
即使能得到图片,能保证提交成功么?
[解决办法]
借取了csdn的验证码的生成:
 


<script type="text/javascript" src="JS/jquery-1.4.4.js"></script>
<script type="text/javascript">
$(function() {
var src = "http://passport.csdn.net/ShowExPwd.aspx?temp=(new Date().getTime().toString(36))";
$("#validate").attr("src", src);
});
</script>



<img id="validate" />

[解决办法]
引用:
到LZ得网上貌似算是跨域了吧?
即使能得到图片,能保证提交成功么?

对哦,楼主,我上面给你的所以可以得到验证码,但是你有了验证吗?也不能进行匹配啊,这个是个不能解决的问题,所以最好还是自己生成验证码
[解决办法]
我猜想楼主是想做自动注册/发布/搜索类的程序.
一般的网站有几类验证码生成方式.
楼上讲的一般是一个CGI页面生成一个随机字符串,再将字符串生成一张图片.还有先生成一个随机字符串,再将随机字符串分解生成多个图片的,还有其他的一些直接用文本随机数字的,还有用问答方式的.....还有很多种类.
以楼主举例的那种验证码为例,应该就是一个CGI页面生成的随机数.很多网站对这个CGI页面的设计都不一样,有些是直接访问那个页面可以得到验证码,有些需要加一些参数.像加一串随机数,加时间等等.
........
太多了,说不完,我们公司就是专干这个的
[解决办法]
OCR识别

读书人网 >asp.net

热点推荐