2Captcha 验证码自动破解服务使用

2Captcha 是一个验证码自动识别服务商。

验证码可以是含有必填扭曲文字的图片,也可以由不同图片组成,用户需从中选出符合特定条件的图片。这些操作是为了证明用户不是机器人。

环境信息

  • Python 3
  • 2captcha-python v1.2.8 [1]

2captcha 安装配置

2captcha 安装

参考官网安装文档 安装 Python3 模块

pip3 install 2captcha-python

使用简介

调用 2captcha 需要注册并使用 2captcha 提供的 API 密钥。

以下代码示例返回滑块类型的验证结果:


from twocaptcha import TwoCaptcha

# Initialize 2Captcha solver
config = {
'server': '2captcha.com',
'apiKey': 'ef5beb9c280ce7452183',
'defaultTimeout': 120,
'recaptchaTimeout': 600,
'pollingInterval': 10,
}

solver = TwoCaptcha(**config)

result = solver.coordinates(
'background_img.png',
hintImg='slider_img.png',
hintText="向右滑动填充拼图",
)
print(f'Captcha solved: {result}')

存在的问题

按照以上代码示例,针对相同的图片,每次请求返回的结果都不一样。2Captcha 针对滑块验证成功率太低,基本不可用。

Captcha solved: {'captchaId': '77043576230', 'code': 'coordinates:x=286,y=41'}

Captcha solved: {'captchaId': '77043579057', 'code': 'coordinates:x=276,y=45'}

Captcha solved: {'captchaId': '77043582438', 'code': 'coordinates:x=281,y=55'}

要缓解此问题,可以使用 2Captcha 提供的 100% 识别服务,原理是通过将验证码发送给多个员工进行匹配,满足配置的条件才返回结果(根据官方回复,100% 识别服务只能针对 normal captchas 完全生效,对滑块类型的验证基本不可能得到相同的结果相关链接

参考链接|Bibliography

2Captcha 在线破解验证码

脚注