首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

网站验证码的生成原理、难度控制,及Python实现!

图片验证码已经广泛的使用在各种反爬虫的场景中,验证码的的生成验证过程对于开发者来说是零成本的,对于用户体验来说可能稍差、但是对于爬虫来说是致命的和高成本的。

下面将介绍使用python实现网站验证码的产生及验证的全过程,然我们对验证码的生成有所理解,同时对于机器识别在验证码利于的作用有个认识。

其过程是是用户请求验证后,生成验证码图片并后台session保存验证的字符串,当用户提交验证信息后,取出后台session中的字符集对比,相同的则验证通过。

session["verifycode"] = rand_str是在网站后台的session中保存正确的验证值,在post提交登陆后进行对比。

buf = io.BytesIO()、im.save(buf, 'png')是创建bytes类型的内存对象用于保存生成的图片数据。

self.set_header('Content-type','image/jpg')

self.write(buf.getvalue()),构件response相应对象返回前端。

效果如下:

效果还是不错,生成验证码的复杂度和字符集相关、和字体相关、和噪点相关,也可以生成表达式类型的验证码,同时因为采取随机生成,几百万张图片中也不会存在相同的图片,可见验证码对于反爬虫而言任然是最简单、无成本的反爬虫措施。

好啦,以上就是本文的分享,如果你跟我一样都喜欢python,想成为一名优秀的程序员,也在学习python的道路上奔跑,欢迎你加入python学习群:839383765 群内每天都会分享最新业内资料,分享python免费课程,共同交流学习,让学习变(编)成(程)一种习惯!

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20190213A0EEY200?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券