【爬虫】验证码处理方案

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来解决

经验分享 程序员 微信小程序 职场和发展