前言

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

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

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

验证码获取

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

1.点击手机密码登录

2.输入账号,密码

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

4.识别填写验证码

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

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

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

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

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

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

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

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

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

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

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

获取思路

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

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

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

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

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

源码获取

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

END

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

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

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

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

-END-

某卡验证码获取识别登录相关推荐

  1. Python - WebDriver 识别登录验证码

    Python - WebDriver 识别登录验证码 没什么可说的直接上代码! #-*-coding:utf-8-*- # Time:2017/9/29 7:16 # Author:YangYangJ ...

  2. python---POST/GET请求数据包,图片验证码自动化识别,pytesseract,模拟用户一次正常登录

    python-POST/GET请求数据包,图片验证码自动化识别,pytesseract 项目内容: 模拟用户正常登录Binzcms系统,对登录Binzcms系统进行自动化识别图片验证码,使用get与p ...

  3. Jmeter识别登录验证码_使用百度AI图片识别技术

    Jmeter识别登录验证码_使用百度AI图片识别技术 一.环境准备 1.下载并引用以下Jar包 2.将下载的jar包放至Jmeter中的lib目录中即可使用 二.使用步骤 1.在获得验证码的请求后使用 ...

  4. 用selenium模拟登录魅族官网(针对于点触点选验证码的识别)

    博主是爬虫菜鸡,对于验证码的识别这一块内容是十分的无力,最近按照崔庆才老师的<python3网络爬虫开发实战进行学习>,由于操作系统与老师的不同,技术更新快等多种因素,光是对老师书中的代码 ...

  5. Python识别登录验证码

    Python识别登录验证码(附完整代码) [项目介绍] 网络迅速在人类生活中扎根,我们每天都会不可避免地接触大量网站和碎片化的信息,为了保护用户的账号安全和防止信息泄露,很多网站通行的方式是设置登录验 ...

  6. 爬虫三(Bs4搜索、Selenium基本使用、无界面浏览器、Selenium自动登录百度案例、自动获取12306登录验证码案例、切换选项卡、浏览器前进后退、登录Cnblogs获取Cookie自动点赞)

    文章标题 一.Bs4搜索文档树 二.CSS选择器 三.selenium基本使用 四.无界面浏览器 五.selenium其他使用 1)自动登录百度案例 2)获取位置属性大小.文本 3)自动获取12306 ...

  7. 前端获取验证码、手机号登录、注册功能

    07.前端获取验证码.手机号登录.注册功能 Register.vue <template><div class="register"><div cla ...

  8. Python网络爬虫开发实战,微博宫格验证码的识别

    本节我们来介绍一下新浪微博宫格验证码的识别,此验证码是一种新型交互式验证码,每个宫格之间会有一条指示连线,指示了我们应该的滑动轨迹,我们需要按照滑动轨迹依次从起始宫格一直滑动到终止宫格才可以完成验证, ...

  9. Class 18 - 1 图形验证码的识别

    一.图形验证码的识别 先将验证码的图片保存到本. 打开开发者工具,找到验证码元素.验证码元素是一张图片,src 属性是 CheckCode.aspx.打开链接 http://my.cnki.net/e ...

最新文章

  1. oracle表中怎么去重复,Oracle里去掉表里组合字段重复的记录步骤是什么呢?
  2. 联想服务器升级微码文件,ThinkPad如何升级硬盘微码程序(适用于SL系列机器)
  3. 英特尔加注RISC-V:砸10亿投资,还加入其国际基金会
  4. IDEA_Spring Data JPA有关报错Cannot resolve table 'XXX'
  5. k8s之pod管理(控制器)
  6. PYTHON作业----编写多级菜单
  7. 7-189 帅到没朋友 (20 分)
  8. Git学习总结(13)——使用git.oschina作为自己的源代码在线管理库
  9. 爬取网易某只股票2017-01到2018-01的数据
  10. springboot日志可视化_Springboot面试问题集锦
  11. 使用GDAL进行RPC坐标转换
  12. Codejock Xtreme MFC 图形界面控件包
  13. 多功能时钟电路的设计框图_OLED显示屏,行驱动电路设计,单片机AT89C51与和显示屏的硬件接线...
  14. 【Linux下载安装jdk8】
  15. extjs表格编辑、EditorGridPanel
  16. sqlite3命令行把.db文件导成.txt时报错及中文乱码
  17. 京东“鲸置”,“鲸吞”闲鱼?
  18. Java黑皮书课后题第4章:4.4(几何:六边形面积)六边形面积可以通过下面公式计算(s是边长) 编写程序,提示用户输入六边形的边长,然后显示它的面积
  19. OM | 浅谈收益管理与动态定价
  20. mPaaS iOS框架笔记0-mPaaS iOS 框架初探(以MPH5Demo_plugin为例)

热门文章

  1. 微信自定义网页分享链接(可自定义链接 图片 内容介绍)
  2. Android 更新包与已安装应用的签名不一致
  3. 网络安全学术顶会——USENIX Security '23 夏季论文清单、摘要与总结
  4. 由浅入深laravel教程第1课:搭建homestead开发环境
  5. C#反序列化json字符串时,提示:应为来自命名空间“”的元素“root”。。遇到名称为“”、命名空间为“”的“None”。...
  6. 汉语言文学类毕业论文,有什么好写的选题?
  7. IDEA 中Java EE没有 Web Application选项
  8. 如何通过短信网关发送Wappush消息?
  9. repmgr ERROR: connection to database failedDETAIL: fe_sendauth: no password supplied
  10. 连续苦情剧:机器学习入门笔记(二):线性模型