这一系列文章是我在阅读“Python3网络爬虫开发实践”一书以及其他线上资料学习爬虫过程中的一些笔记和心得,希望能分享给大家。
章节概述:验证码识别。
章节结构:
- 图形验证码识别
- 滑动验证码识别
- 点触验证码识别
- 微博宫格验证码识别
具体内容:
- 图形验证码识别
1.依赖技术:OCR技术
2.验证方法:
tesserocr库的image_to_text()方法,在验证前还可以通过convert()来转换处理图片。
- 滑动验证码识别
1.识别思路
模拟浏览器动作的方式来完成验证。使用Selenium库。步骤分为三步,模拟点击验证按钮,识别滑动缺口的位置,模拟拖动滑块。
2.具体实现
首先我们要初始化模拟器,然后获取验证按钮(element_to_be_clickable),然后对比获取的两张图片,识别缺口位子,得到缺口位置。然后获取滑动对象(get_slider),最后我们模拟拖动,使用click_and_hold方法,到了刚才找到的缺口位置调用release方法.这里要注意移动速度不可匀速,以防被识别为程序。
- 点触验证码识别
1.点触验证原理
依然是图像转换为文字,然后模拟浏览器动作来点击识别验证。因为文字和图像通常经过多次扭曲变形,所以难以识别,可以借助外界库,像之前的ocr或者超级鹰网站提供的一些识别库。
- 微博宫格验证码识别
1.识别思路
识别箭头方向,通过模板匹配来进行识别。算法确定以后,进行模拟浏览器动作进行宫格路径的滑动。