常见的网站登录验证码种类及其解决办法

在爬虫开发时,大家经常会遇到验证码识别,在网站中加入验证码的目的是加强用户安全性和提高反爬虫机制,有效防止对某一特定注册用户用特定程序暴力破解的方式不断地进行登录尝试。在此为大家介绍一下验证码的种类。

【字符验证码】:在图片上随机产生数字、英文字母或汉字,一般有4位或者6位验证码字符。通过添加干扰线、添加噪点以及增加字符的黏连程度和旋转角度来增加机器识别的难度。但这种传统的验证码随着OCR技术的发展,能够轻易地被破解。

【图片验证码】:原理和字符验证码相似,应用了字符验证码的技术,只不过是把随机的字符换成了图片让人识别,例如12306的验证码。同时,一些将广告嵌入到图片上面的验证码,也都归属图片验证码这一类。

【GIF动图验证码】:主流验证码提供的都是静态图片,比较容易被OCR软件识别,有的网站提供GIF动态的验证码图片,使得识别器不容易辨识哪一个图层是真正的验证码图片,在提供清晰图片的同时,可以更有效地防止识别器的识别。据统计,动画GIF验证码防垃圾注入可以达到100%,是一个非常有效的验证码创新模式。同时,GIF动画效果多达百种,也可以增加网站页面的美观效果。

【极验验证码】:是极验验证于2012年推出的新型验证码,基于行为式验证技术,通过拖动滑块完成拼图的形式实现验证,是目前看到的比较有创意的验证码,安全性具有新的突破。

【手机验证码】:通过短信的形式发送到用户手机上面的验证码,一般为6位的数字。

【语音验证码】:也属于手机端验证的一种方式,一般为系统拨打电话给用户,用户接听电话,系统将验证字符(一般为数字)以语音的形式告诉用户,用户获得验证字符,在网站登录界面输入即可登录。

【视频验证码】:视频验证码是验证码中的新秀,在视频验证码中,将随机数字、字母和中文组合而成的验证码动态嵌入MP4、FLV等格式的视频中,增大识别器破解难度。验证码视频动态变换、随机响应,可以有效防范字典攻击、穷举攻击等攻击行为。视频中的验证码字母、数字组合,字体的形状、大小,速度的快慢,显示效果和轨迹的动态变换,增加了恶意抓屏破解的难度。其安全度远高于普通的验证码,而且这种形式的验证码在使用过程中用户不会感到枯燥,由于其提高了机器识别的难度,因此可以适当降低用户识别的难度,使用户更容易辨识。


目前大多数网站还在使用字符验证码,主要用于用户登录。而有些网站数据需要用户登陆后才有访问权限,爬取数据时,对于用户登录设置验证码识别的网站有以下三种解决办法:

(1)人工识别验证码:将验证码图片下载到本地,然后靠使用者自行识别并将识别内容输入,程序获取输入内容,完成登录。其特点是开发简单,适合初学者,但过分依赖人为控制,难以实现批量爬取。

(2)通过Python调用OCR引擎识别验证码:这是一般最理想的解决方案,但正常情况下,OCR准确率较低,需要机器学习不断提高OCR准确率,开发成本相对较高。

(3)调用API使用第三方平台识别验证码:开发成本较低,有完善的API接口,直接调用即可,识别准确率较高,但每次识别需要收取小额费用。

上述方案是目前解决验证码最有效的手段,后面老王将会单独详细写一篇OCR技术和第三方平台的文章,欢迎指正。

你可能感兴趣的:(网络爬虫)