求解验证码¶
基本概念¶
验证码的求解遵循之前在 基本概念 中介绍的准则,即从设计上将验证中产生的数据与代码逻辑分离。
Captcha
类包含验证码求解和验证流程。每次验证都产生一个继承
BaseTcaptchaSession
的xxCaptchaSession
,它保存了验证服务器发送的数据。所有的验证码求解都隐藏在了
tylisten
回调框架后。验证过程中调用的是对应的“占位符”,由下游应用为这些占位符注册相应的行为。我们使用同样的接口定义每种行为,无论下游开发者选择机器求解或是人力求解。此外程序中也不再需要任何内建的验证码求解算法,从而提高了程序的可维护性。
支持的验证码¶
目前支持两种验证码:
滑块验证码
参见
由于2023年后滑块验证码出现的频率有一定下降,同时为了减少不必要的依赖项、提高代码的可维护性,我们将滑块验证码的机器求解方案分离到了一个独立的包 slide-tc 。它是 QQQR (aioqzone) 的额外依赖项。
图片点击验证码
Table of Contents¶
相关链接¶
captcha
包依赖于下列 aioqzone 工具链:
pychaosvm: 使用 Python 执行混沌虚拟机。
参见
在此前的版本中,我们使用 NodeJS
来编码密码以及执行混沌虚拟机。如今我们使用 Python 实现的 TeaEncoder
和 pychaosvm 来实现这些功能。
tylisten
: 异步回调框架。