此页面帮助 Selenium 团队将验证码解决与测试和自动化管道的稳定、可重复工作流程集成。
Death By Captcha (DBC) 让 Selenium 脚本通过 API 解决验证码挑战,而无需手动交互:脚本从页面提取挑战参数、向 DBC 请求解答、将结果注入页面,然后继续流程。本页是快速入门:安装、可运行的代码示例以及受支持任务的说明。
import json
import os
import time
import deathbycaptcha
from selenium import webdriver
from selenium.webdriver.common.by import By
USERNAME = os.getenv('DBC_USERNAME')
PASSWORD = os.getenv('DBC_PASSWORD')
DEMO_URL = 'https://www.google.com/recaptcha/api2/demo'
def solve_recaptcha_v2(driver):
# 1. extract the challenge parameters from the page
sitekey = driver.find_element(By.ID, 'recaptcha-demo').get_attribute('data-sitekey')
token_params = json.dumps({'googlekey': sitekey, 'pageurl': DEMO_URL})
client = deathbycaptcha.SocketClient(USERNAME, PASSWORD)
if client.get_balance() <= 0:
raise SystemExit('No balance - top up before solving.')
# 2. request the solution token from DBC (type 4 = reCAPTCHA v2 token)
result = client.decode(type=4, token_params=token_params)
return result['text'] if result else None
driver = webdriver.Firefox()
driver.get(DEMO_URL)
token = solve_recaptcha_v2(driver)
if not token:
print('No solution yet - retry with backoff')
raise SystemExit(1)
# 3. inject the token back into the page
driver.execute_script("document.getElementById('g-recaptcha-response').value = arguments[0]", token)
# 4. submit and wait for the success element
driver.find_element(By.ID, 'recaptcha-demo-submit').click()
time.sleep(2)
print(driver.find_element(By.CLASS_NAME, 'recaptcha-success').text)
driver.quit()
完整可运行版本: 官方 Python 客户端仓库中的 examples/deathbycaptcha-python-selenium
| 需要 | Selenium 上下文 | DBC路径 |
|---|---|---|
| 稳定的代币工作流程 | 重复自动化运行中的确定性处理。 | API 驱动的令牌流具有明确的重试/时间限制。 |
| 类型覆盖范围 | 不同的项目有不同的挑战类别。 | 使用特定于类型的端点并分别验证每个场景。 |
| 运营支持 | 生产问题需要快速诊断。 | 用于升级和规划的支持和可靠性表面。 |
| 主题 | 说明 |
|---|---|
| 验证码类型(API) | reCAPTCHA v2 和 v3、Cloudflare Turnstile、GeeTest、DataDome,以及图片/文字验证码。 |
| 流程 | 从页面提取 sitekey,向 DBC API 请求令牌(type 4),注入页面并提交表单。 |
| 余额 | 解答从账户余额中扣费;解码前请检查余额。 |
| 重试 | 未返回解答表示临时情况:请像官方示例那样以退避方式重试。 |
| API 与扩展 | 此流程在脚本内使用 API;浏览器扩展是用于手动浏览的免代码路径。 |
| 支持的浏览器 | 任何支持 WebDriver 的浏览器;官方示例在 Firefox 和 Chrome 上运行。 |
对于 Selenium 验证码求解器部署,首先确认稳定的代币流,然后连接可靠性和定价页面以最终确定生产计划。