Esta página ayuda a los equipos de Selenium a integrar la resolución de captcha con flujos de trabajo estables y repetibles para procesos de prueba y automatización.
Death By Captcha (DBC) permite que los scripts de Selenium resuelvan desafíos de captcha a través de la API en lugar de la interacción manual: tu script extrae los parámetros del desafío de la página, solicita una solución a DBC, inyecta el resultado de vuelta en la página y continúa el flujo. Esta página es el inicio rápido: instalación, un código de ejemplo ejecutable y notas de las tareas admitidas.
Python:
pip install selenium deathbycaptcha-official
Usa las credenciales de tu cuenta de DBC en el cliente. Crea una cuenta y revisa precios y saldo antes de ejecutar el flujo.
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()
Versión completa ejecutable: examples/deathbycaptcha-python-selenium en el repositorio oficial del cliente Python
| Necesidad | Selenium contexto | ruta DBC |
|---|---|---|
| Flujo de trabajo de token estable | Manejo determinista en ejecuciones repetidas de automatización. | Flujo de tokens impulsado por API con reintentos explícitos/límites de tiempo. |
| Tipo de cobertura | Diferentes proyectos enfrentan diferentes clases de desafíos. | Utilice puntos finales de tipo específico y valide cada escenario por separado. |
| Soporte operativo | Los problemas de producción necesitan un diagnóstico rápido. | Superficies de soporte y confiabilidad para escalamiento y planificación. |
| Tema | Nota |
|---|---|
| Tipos de captcha (API) | reCAPTCHA v2 y v3, Cloudflare Turnstile, GeeTest, DataDome y captchas de imagen/texto. |
| Flujo | Extrae el sitekey de la página, solicita el token a la API de DBC (type 4), injértalo de vuelta y envía el formulario. |
| Saldo | Las soluciones se pagan con el saldo de la cuenta; compruébalo antes de decodificar. |
| Reintentos | Que no devuelva solución significa temporal: reintenta con espera, como hace el ejemplo oficial. |
| API frente a la extensión | Este flujo usa la API dentro de tu script; la extensión del navegador es la ruta sin código para la navegación manual. |
| Navegadores admitidos | Cualquier navegador compatible con WebDriver; la muestra oficial se ejecuta en Firefox y Chrome. |
Para la implementación del solucionador de captcha de Selenium, primero confirme el flujo de token estable y luego conecte las páginas de confiabilidad y precios para finalizar la planificación de producción.