验证码识别思路和方法 爬虫验证码识别教程
热门文章
0
淘宝搜:【天降红包222】领超级红包,京东搜:【天降红包222】
淘宝互助,淘宝双11微信互助群关注公众号 【淘姐妹】
一、起因 前几天准备做一个自动计算gpa的网站,学校的教务登录时候需要输入验证码。本来想把验证码图片显示出来让用户手动输入,但是搞了半天没搞定。。。所以决定自己写一个识别的程序。 直接说结果吧,最终写好的程序成功率100%(连续测试了200次)。 二、原理 我们先来看一看验证码是什么样的。 如上如,就是这样的一个四位数字。 这样的验证码已经可以算是验证码界最简单的了,没有任何扭曲、变形、干扰线,长着一张“快来识别我!”的脸。那我们就来识别一下吧。 原理很简单,就是通过计算图片相似度来判断。 三、准备工作 准备工作主要做两点,截取数字和计算坐标。 截取数字就是把0~9这十个数字从验证码图片中截取出来,方便后面对比用。需要注意的是,十个数字最好尺寸相同。我是用ps截的,因为这个网站已经做完一段时间了,我就不重新截图了。 计算坐标主要是要确定第一个数字左上角的坐标。因为我们截的数字都是同样尺寸,所以只要确定了第一个数字左上角的坐标就可以算出后面三个数字的坐标了。坐标的计算也是用ps,放大图片之后数一数就行了。。别眼花就肯定能数对 四、代码部分 代码部分,我只给出最关键的相似度计算。我使用的是python。 ?get_hash()函数是计算图片的hash值。是把单个像素和平均像素比较,如果大就赋1,如果小就赋0。这样就把一个图片转换成一个二进制串了。 hamming_dist()函数是计算两个二进制串的汉明距离。不明白的可以百度一下,很简单的。 有了这两个函数,我们就可以进行识别了。首先从网页获取验证码图片,然后根据坐标以及尺寸从图片中截取出来四个未知数字,然后每个未知数字都和我们的十个标准数字进行对比,最后取相似度最大,也就是汉明距离最小的那个标准数字。这样就可以判断出来四个数字了。 五、意外之外 实际操作中,我发现识别成功率很低。为什么呢?我保存识别失败的图片进行查看,发现这个验证码有一个特点,就是如果里面出现1的时候,两个数字间的距离就会缩短。这也就意味着我们之前计算的坐标是错的。怎么办呢?我想了一会,发现有1的时候一般坐标会向后移动2~3格,那就好办了,我们先按照默认坐标算一次,然后给他+1再算一次,然后+2.。。最后我们取相似度最大的就行了。 虽然不是最好的解决办法,但是很实用,毕竟是计算机,多算个几次完全没有问题。 最后我决定把最大偏移设置为3,并且考虑到1的位置不固定,我每次计算的时候都会尝试偏移0~3,也就是一个图片计算次数为4(4个数字)*4(0~3一共4次尝试)*10(10个标准数字)。大概就是这样。 六、结论 这次的验证码识别可以说简单当中有一点不简单,解决问题的能力还是很重要的。
recaptcha提交识别码 captcha验证
recaptcha,recaptcha字段看不见怎么办,recaptcha failed星际战甲,recaptcha字段github地址: https://github.com/whvcse/EasyCaptcha Java图形验证码,支持gif、中文、算术等类型,可用于Java Web、JavaSE等项目。 1、 maven 2、 gradle jar包 下载地址 EasyCaptcha.jar @Controller public class CaptchaController { } 前端HTML 如果使用了安全框架之类的拦截功能,要把/captcha路径排除登录拦截。 web.xml中配置servlet: 前端html代码: 还有更多参数,可到作者github查看
最近老是收到各种验证码怎么解决 收到各种软件验证码怎么解决
最近老是收到各种验证码怎么办,总是收到各种各样的验证码,老是收到莫名的验证码,最近收到很多验证码亲亲~您好!很荣幸为您解答。一直收到各种验证码怎么办方法如下:一,设置拦截现在大部分手机的拦截功能很强大了,可以设置哪些情况自动拦截短信,例如:陌生号码拦截、关键词拦截等等,设置的时候要谨慎,因为有可能你自己正常的短信也会被拦截。以关键词拦截来说下怎么操作。验证码短信验证码短信有一个共同点,那就是短信内容中必带验证码三个字,因此遭遇此类恶意短信轰炸我们可以把“验证码”三字作为关键词拦截,待恢复正常后解除拦截即可。打开短信,找到骚扰拦截设置,然后加上关键词作为黑名单,一旦短信中出现或包含这个词,那么我们的手机就会自动拦截这条短信,让机主免遭打扰。关键字拦截二,暂停短信功能如果遭受的轰炸太猛烈了,时间太长也不停,那么这个时候要考虑向运营商投诉了,运营商也没有好的处理办法,但是他们可以帮你暂停手机的短信功能,暂停之后任何短信都发不到你手机上,同样,你也发不出去,这是比较极端的处理方式了
版权声明:除非特别标注原创,其它均来自互联网,转载时请以链接形式注明文章出处。