第24讲:更智能的深度学习处理验证码

我们在前面讲解了如何使用打码平台来识别验证码,简单高效。但是也有一些缺点,比如效率可能没那么高,准确率也不一定能做到完全可控,并且需要付出一定的费用。

本课时我们就来介绍使用深度学习来识别验证码的方法,训练好对应的模型就能更好地对验证码进行识别,并且准确率可控,节省一定的成本。

本课时我们以深度学习识别滑块验证码为例来讲解深度学习对于此类验证码识别的实现。

滑块验证码是怎样的呢?如图所示,验证码是一张矩形图,图片左侧会出现一个滑块,右侧会出现一个缺口,下侧会出现一个滑轨。左侧的滑块会随着滑轨的拖动而移动,如果能将左侧滑块匹配滑动到右侧缺口处,就算完成了验证。
在这里插入图片描述
由于这种验证码交互形式比较友好,且安全性、美观度上也会更高,像这种类似的验证码也变得越来越流行。另外不仅仅是“极验”,其他很多验证码服务商也推出了类似的验证码服务,如“网易易盾”等,上图所示的就是“网易易盾”的滑动验证码。

没错,这种滑动验证码的出现确实让很多网站变得更安全。但是做爬虫的可就苦恼了,如果想采用自动化的方法来绕过这种滑动验证码,关键点在于以下两点:

  • 找出目标缺口的位置。
  • 模拟人的滑动轨迹将滑块滑动到缺口处。

那么问题来了,第一步怎么做呢?

接下来我们就来看看如何利用深度学习来实现吧。

1.目标检测

我们的目标就是输入一张图,输出缺口的的位置,所以只需要将这个问题归结成一个深度学习的“目标检测”问题就好了。

首先在开始之前简单说下目标检测。什么叫目标检测?顾名思义,就是把我们想找的东西找出来。比如给一张“狗”的图片,如图所示:
在这里插入图片描述
我们想知道这只狗在哪,它的舌头在哪,找到了就把它们框选出来,这就是目标检测。

经过目标检测算法处理之后,我们期望得到的图片是这样的:
在这里插入图片描述
可以看到这只狗和它的舌头就被框选出来了,这样就完成了一个不错的目标检测。

当前做目标检测的算法主要有两个方向,有一阶段式和两阶段式,英文分别叫作 One stage 和 Two stage,简述如下。

  • Two Stage:算法首先生成一系列目标所在位置的候选框,然后再对这些框选出来的结果进行样本分类,即先找出来在哪,然后再分出来是什么,俗话说叫“看两眼”,这种算法有 R-CNN、Fast R-CNN、Faster R-CNN 等,这些算法架构相对复杂,但准确率上有优势。
  • One Stage:不需要产生候选框,直接将目标定位和分类的问题转化为回归问题,俗话说叫“看一眼”,这种算法有 YOLO、SSD,这些算法虽然准确率上不及 Two stage,但架构相对简单,检测速度更快。
    所以这次我们选用 One Stage 的有代表性的目标检测算法 YOLO 来实现滑动验证码缺口的识别。

YOLO,英文全称叫作 You Only Look Once,取了它们的首字母就构成了算法名,目前 YOLO 算法最新的版本是 V3 版本,这里算法的具体流程我们就不过多介绍了,如果你感兴趣可以搜一下相关资料了解下,另外也可以了解下 YOLO V1~V3 版本的不同和改进之处,这里列几个参考链接。
模块三:多种形式的爬取方法
开篇词
开篇词:如何高效学好网络爬虫
模块一:爬虫基础原理
第01讲:必知必会,掌握 HTTP 基本原理
第02讲:夯实根基,Web 网页基础
第03讲:原理探究,了解爬虫的基本原理
第04讲:基础探究,Session 与 Cookies
第05讲:多路加速,了解多线程基本原理
第06讲:多路加速,了解多进程基本原理
模块二:爬虫基本库的使用
第07讲:入门首选,Requests 库的基本使用
第08讲:解析无所不能的正则表达式
第09讲:爬虫解析利器 PyQuery 的使用
第10讲:高效存储 MongoDB 的用法
第11讲:Reqeusts + PyQuery + PyMongo 基本案例实战
模块三:多种形式的爬取方法
第12讲:Ajax 的原理和解析
第13讲:Ajax 爬取案例实战
第14讲:Selenium 的基本使用
第15讲:Selenium 爬取实战
第16讲:异步爬虫的原理和解析
第17讲:aiohttp 异步爬虫实战
第18讲:爬虫神器 Pyppeteer 的使用
第19讲:Pyppeteer 爬取实战
模块四:反爬虫的应对方法
第20讲:代理的基本原理和用法
第21讲:提高利用效率,代理池的搭建和使用
第22讲:验证码反爬虫的基本原理
第23讲:利用资源,学会用打码平台处理验证码
第24讲:更智能的深度学习处理验证码
第25讲:你有权限吗?解析模拟登录基本原理
第26讲:模拟登录爬取实战案例
第27讲:令人抓狂的 JavaScript 混淆技术
第28讲:JavaScript 逆向爬取实战(上)
第29讲:JavaScript 逆向爬取实战(下)
模块五:App 爬虫
第30讲:App 爬虫是怎么着情况?
第31讲:抓包利器 Charles 的使用
第32讲:实时处理利器 mitmproxy 的使用
第33讲:可见即可爬,Appium 的使用
第34讲:更好用的自动化工具 airtest 的使用
第35讲:无所不能的 Xposed 的使用
第36讲:App 逆向的常见技巧
模块六:智能化解析
第37讲:智能化解析是怎样的技术?
第38讲:智能化解析解析工具使用
第39讲:页面智能解析算法原理解析
第40讲:跟我来一起实现智能化解析算法吧
模块七:Scrapy 框架的使用
第41讲:无人不知的 Scrapy 爬虫框架的介绍
第42讲:初窥门路 Scrapy 的基本使用
第43讲:灵活好用的 Spider 的用法
第44讲:功能强大的 Middleware 的用法
第45讲:哪都能存,Item Pipeline 的用法
第46讲:遇到动态页面怎么办?详解渲染页面爬取
第47讲:大幅提速,分布式爬虫理念
第48讲:分布式利器 Scrapy-Redis 原理
第49讲:实战上手,Scrapy-Redis 分布式实现
第50讲:Scrapy 部署不用愁,Scrapyd 的原理和使用
第51讲:容器化技术也得会,Scrapy 对接 Docker
第52讲:Scrapy 对接 Kubernetes 并实现定时爬取
结束语
结束语:从爬虫小白到高手的必经之路
第24讲:更智能的深度学习处理验证码
2020/04/20 崔庆才

6.28M00:00/10:53

看视频
我们在前面讲解了如何使用打码平台来识别验证码,简单高效。但是也有一些缺点,比如效率可能没那么高,准确率也不一定能做到完全可控,并且需要付出一定的费用。

本课时我们就来介绍使用深度学习来识别验证码的方法,训练好对应的模型就能更好地对验证码进行识别,并且准确率可控,节省一定的成本。

本课时我们以深度学习识别滑块验证码为例来讲解深度学习对于此类验证码识别的实现。

滑块验证码是怎样的呢?如图所示,验证码是一张矩形图,图片左侧会出现一个滑块,右侧会出现一个缺口,下侧会出现一个滑轨。左侧的滑块会随着滑轨的拖动而移动,如果能将左侧滑块匹配滑动到右侧缺口处,就算完成了验证。

由于这种验证码交互形式比较友好,且安全性、美观度上也会更高,像这种类似的验证码也变得越来越流行。另外不仅仅是“极验”,其他很多验证码服务商也推出了类似的验证码服务,如“网易易盾”等,上图所示的就是“网易易盾”的滑动验证码。

没错,这种滑动验证码的出现确实让很多网站变得更安全。但是做爬虫的可就苦恼了,如果想采用自动化的方法来绕过这种滑动验证码,关键点在于以下两点:

找出目标缺口的位置。
模拟人的滑动轨迹将滑块滑动到缺口处。
那么问题来了,第一步怎么做呢?

接下来我们就来看看如何利用深度学习来实现吧。

目标检测
我们的目标就是输入一张图,输出缺口的的位置,所以只需要将这个问题归结成一个深度学习的“目标检测”问题就好了。

首先在开始之前简单说下目标检测。什么叫目标检测?顾名思义,就是把我们想找的东西找出来。比如给一张“狗”的图片,如图所示:

我们想知道这只狗在哪,它的舌头在哪,找到了就把它们框选出来,这就是目标检测。

经过目标检测算法处理之后,我们期望得到的图片是这样的:

可以看到这只狗和它的舌头就被框选出来了,这样就完成了一个不错的目标检测。

当前做目标检测的算法主要有两个方向,有一阶段式和两阶段式,英文分别叫作 One stage 和 Two stage,简述如下。

Two Stage:算法首先生成一系列目标所在位置的候选框,然后再对这些框选出来的结果进行样本分类,即先找出来在哪,然后再分出来是什么,俗话说叫“看两眼”,这种算法有 R-CNN、Fast R-CNN、Faster R-CNN 等,这些算法架构相对复杂,但准确率上有优势。
One Stage:不需要产生候选框,直接将目标定位和分类的问题转化为回归问题,俗话说叫“看一眼”,这种算法有 YOLO、SSD,这些算法虽然准确率上不及 Two stage,但架构相对简单,检测速度更快。
所以这次我们选用 One Stage 的有代表性的目标检测算法 YOLO 来实现滑动验证码缺口的识别。

YOLO,英文全称叫作 You Only Look Once,取了它们的首字母就构成了算法名,目前 YOLO 算法最新的版本是 V3 版本,这里算法的具体流程我们就不过多介绍了,如果你感兴趣可以搜一下相关资料了解下,另外也可以了解下 YOLO V1~V3 版本的不同和改进之处,这里列几个参考链接。

  • YOLO V3 论文:https://pjreddie.com/media/files/papers/YOLOv3.pdf
  • YOLO V3 介绍:https://zhuanlan.zhihu.com/p/34997279
  • YOLO V1-V3 对比介绍:h
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值