【爬虫】验证码处理方案
1、手动输入(input)
仅限于输入一次就可持续使用的情况
2、图像识别引擎解析(不推荐)
使用光学识别引擎处理图片中的数据,目前常用于图片数据提取,较少用于验证码处理
(1)什么是图片识别引擎?
图片识别引擎:OCR(Optical Character Recognition)是指使用扫描仪或数码相机对文本资料进行扫描成图像文件,然后对图像文件进行分析处理,自动识别获取文字信息及版面信息的软件。
(2)Tesseract OCR
Tesseract:一款由HP实验室开发,由Google维护的开源OCR引擎,特点是开源,免费,支持多语言,多平台。 github项目地址: 最新官方文档地址:
-
引擎的安装
mac环境下的安装 brew install --with-training-tools tesseract linux环境下的安装 sudo apt-get install tesseract-ocr windows环境下的安装 可通过exe安装包安装,下载地址:,安装完成后需要将Tesseract 执行文件的目录加入到PATH中,方便后续调用
-
Python库的安装
# Pillow模块:打开图片文件 pip/pip3 install pillow # pytesseract模块:从图片中解析数据 pip/pip3 install pytesseract
-
图片识别引擎的使用
from pillow import Image import pytesseract im = Image.open(图片文件路径) result = pytesseract.image_to_string(im) print(result)
-
其他ocr平台 微软Azure 图像识别: 有道智云文字识别: 阿里云图文识别: 腾讯OCR文字识别:
3、打码平台(推荐)
分免费和收费的,由于打码平台较多,且有些不太稳定,所以就不一一列举了,可自行查找&尝试
-
云码HTTP接口文档:
4、常见验证码的种类
(1)url地址不变,验证码不变
识别技巧:只需要获取验证码的地址,然后通过打码平台识别即可
(2)url地址不变,验证码变化
实现方式:通过cookie来实现 识别技巧:提交验证码的到时候保证cookie的一致性,对此可使用requests.session来解决