某卡验证码获取识别登录

前言

前短时间夜幕团队的哲哥带来一个强大的库,一个验证码识别库 ddddocr,小编第一时间看到后就收藏了,最近有空就找了一个例子来试试。

这次是某卡网站的登录,在试验这个库时,顺便教大家验证码怎么获取,因为有一种验证码定位到验证码链接后,去请求链接下载,再去识别下载后的本地图片,即使识别的结果与下载的一样,但就是不能登录。

其次 ddddocr 这个库比较适用如下的这种验证码识别,小编与某度的 OCR 对比,效果好太多了:

验证码获取

打开登录网页,这个登录页面初始页面显示的是动态手机密码登录,且是没验证码的,我们需要使用账号密码登录,及验证码出现流程如下:

1.点击手机密码登录

2.输入账号,密码

3.点击登录,这时验证码才会弹出

4.识别填写验证码

5.再次点击登录,完成整个流程

现在我们就来解刨这个流程,打开开发者工具定位到验证码元素,可看到对应的链接:

从上图看出,链接显示的验证码码与输入框那里的验证码一致。

好,到这里一般是直接请求这个链接,把验证码下载到本地,进行识别,在把验证码提交上去,登录,这思路没有错,一个链接对应一个验证码,有很多网站就这样的。

但有一些网站,这样做是不行的,一个链接对应多个验证码,我们打开链接,进行对比,会发现,链接一样,打开的验证码与输入框显示的不一样:

前端显示的是 bcdz,而链接打开后显示却是 FYUW,两个不一样的结果,拿 FYUW 输入框中,是可以登陆成功的,这里就不放成功跳转的截图了,不信的话可试试:

现在来解释一下为什么,学过计算机网络的话,理解应该方便点,就是一个握手协议,。

打开浏览器,打开登录网页,pc 端会携带一个 cookie 给对方,相当于握上手了,连接上了。

cookie 作为此次请求这个网站的标识,当点击登录验证码弹出时,这个验证码也是通过这个握手连接对应此次登录需要的验证码。

尽管显示的不一样,但都是在此次握手的通道中,所以可以用不一样的验证码输入进去登录上。

如果得到验证码链接,直接使用 requests 去请求下载验证码,相当于重新打开一个浏览器去访问,重新建立了一个握手通道,所以识别出来的码不能使用。

获取思路

思路也是比较简单的,可以使用 selenium 进行操作,提交账号密码都是常规操作。

主要的是验证码,先获取验证码链接,再在同一个浏览器中打开一个新窗口,在新窗口中打开验证码链接,这样就保证了验证码与此次登录页面在同一个通道中。

然后使用 pyautogui 库自动右键保存图片,操作部分代码:

保存下来图片后,就可以使用强大的 ddddocr 进行识别了,小编使用的体验挺不错,简介方便,准确度高,;某度的 OCR 调用又麻烦,识别准确度巨低。

一个效果视频如下,完整代码回复关键词获取。

 

源码获取

在公众号对话框回复关键字“卡卡”即可获取

END

读者交流群已建立,找到我备注 “交流”,即可获得加入我们~

听说点 “在看” 的都变得更好看呐~

关注关注小编呗~小编给你分享爬虫,数据分析,可视化的内容噢~

扫一扫下方二维码即可关注我噢~

-END-

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值