一、验证码验证流程
首先在破解验证码之前,需要知己知彼才能百战百胜,所以通过下面这张图来了解一下验证码是如何起作用的。下面以登录业务为例。
(1)简单流程
(2)请求与响应数据包流程
二、破解验证码一般步骤
(1)第一步:获取字符图片
对于基于图像的验证码,首先需要通过网页抓取或API调用等方式获取包含验证码的图片。这一步通常使用如Selenium、feapder等工具模拟用户访问行为,或者直接请求验证码生成接口获得验证码图片资源。
(2)第二步:破解验证码内容
图像识别:对于静态的字符型验证码,用OCR(光学字符识别)技术来识别图片中的字符,这里推荐用ddddocr。然后用OpenCV来进行图片预处理(如灰度化、二值化、降噪、去干扰线等)、识别字符以及后处理校正结果。
(3)第三步:破解验证码接口
找到提交验证码的接口,将成功识别出验证码内容填入到相应的表单字段中,然后模拟用户提交数据包。如果验证码包含了时间戳、随机数、session信息等附加验证条件,则还需要同步这些参数,并确保在发送验证请求时将正确的验证码答案与这些参数一并传给服务器进行验证。
如果网站用的是其他安全平台的验证码服务,这个时候验证码接口会响应回来一个token
如果网站是自己构造的验证码,那么有可能直接给你响应你想要的内容。
(4)第四步:构造并发送有效验证请求
爬虫继续执行后续任务,拿着验证码接口返回的token去请求想要的内容,如登录操作、数据抓取等。