Use Cases

Manejo automatizado de CAPTCHA de inicio de sesión con CaptchaAI

Las páginas de inicio de sesión son el lugar más común para encontrar CAPTCHA. Ya sea reCAPTCHA v2, v3, Turnstile o una imagen CAPTCHA, CaptchaAI resuelve el desafío mientras su automatización maneja el llenado y envío de formularios.

Tipos comunes de CAPTCHA de inicio de sesión

CAPTCHA Cómo aparece Método CaptchaAI
reCAPTCHA v2 Casilla de verificación o desafío antes de enviar method=userrecaptcha
reCAPTCHA v3 Puntuación invisible, bloquea a los usuarios con puntuación baja method=userrecaptcha&version=v3
Cloudflare Turnstile Widget antes del formulario de inicio de sesión method=turnstile
CAPTCHA de imagen Imagen de texto para escribir method=base64

Método 1: solicitudes HTTP (sin navegador)

Para formularios de inicio de sesión que aceptan solicitudes POST estándar:

import requests
import time

API_KEY = "YOUR_API_KEY"

def solve_recaptcha(site_key, page_url):
    resp = requests.get("https://ocr.captchaai.com/in.php", params={
        "key": API_KEY, "method": "userrecaptcha",
        "googlekey": site_key, "pageurl": page_url
    })
    task_id = resp.text.split("|")[1]
    for _ in range(60):
        time.sleep(5)
        result = requests.get("https://ocr.captchaai.com/res.php", params={
            "key": API_KEY, "action": "get", "id": task_id
        })
        if result.text == "CAPCHA_NOT_READY": continue
        if result.text.startswith("OK|"): return result.text.split("|")[1]
        raise Exception(result.text)
    raise TimeoutError()

# Login flow
session = requests.Session()
login_url = "https://staging.example.com/qa-login"

# Load login page to get cookies and site key
page = session.get(login_url)
# Extract site_key from the page HTML...
site_key = "6Le-wvkS..."

# Solve CAPTCHA
token = solve_recaptcha(site_key, login_url)

# Submit login form
resp = session.post(login_url, data={
    "username": "user@example.com",
    "password": "your_password",
    "g-recaptcha-response": token
})

if resp.url != login_url:
    print("Login successful!")
    # session now has auth cookies for subsequent requests

Método 2: Selenium (Python)

Para páginas de inicio de sesión que requieren ejecución de JavaScript:

from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
import requests
import time

API_KEY = "YOUR_API_KEY"

options = webdriver.ChromeOptions()
driver = webdriver.Chrome(options=options)

# Navigate to login page
driver.get("https://staging.example.com/qa-login")
wait = WebDriverWait(driver, 10)

# Fill in credentials
username_field = wait.until(EC.presence_of_element_located((By.NAME, "username")))
username_field.send_keys("user@example.com")
driver.find_element(By.NAME, "password").send_keys("your_password")

# Extract site key and solve
recaptcha = driver.find_element(By.CLASS_NAME, "g-recaptcha")
site_key = recaptcha.get_attribute("data-sitekey")

token = solve_recaptcha(site_key, driver.current_url)

# Inject token
driver.execute_script(
    f"document.getElementById('g-recaptcha-response').innerHTML = '{token}';"
)

# Submit
driver.find_element(By.CSS_SELECTOR, 'button[type="submit"]').click()
wait.until(EC.url_changes(driver.current_url))
print(f"Logged in! Now at: {driver.current_url}")

Método 3: Puppeteer (Node.js)

const puppeteer = require("puppeteer");
const axios = require("axios");

const API_KEY = "YOUR_API_KEY";

async function solveRecaptcha(siteKey, pageUrl) {
  const submit = await axios.get("https://ocr.captchaai.com/in.php", {
    params: {
      key: API_KEY,
      method: "userrecaptcha",
      googlekey: siteKey,
      pageurl: pageUrl,
    },
  });
  const taskId = submit.data.split("|")[1];

  while (true) {
    await new Promise((r) => setTimeout(r, 5000));
    const result = await axios.get("https://ocr.captchaai.com/res.php", {
      params: { key: API_KEY, action: "get", id: taskId },
    });
    if (result.data === "CAPCHA_NOT_READY") continue;
    if (result.data.startsWith("OK|")) return result.data.split("|")[1];
    throw new Error(result.data);
  }
}

(async () => {
  const browser = await puppeteer.launch({ headless: "new" });
  const page = await browser.newPage();
  await page.goto("https://staging.example.com/qa-login");

  // Fill credentials
  await page.type("#username", "user@example.com");
  await page.type("#password", "your_password");

  // Get site key and solve
  const siteKey = await page.$eval(".g-recaptcha", (el) =>
    el.getAttribute("data-sitekey")
  );
  const token = await solveRecaptcha(siteKey, page.url());

  // Inject and submit
  await page.evaluate(
    (t) => (document.getElementById("g-recaptcha-response").innerHTML = t),
    token
  );
  await page.click('button[type="submit"]');
  await page.waitForNavigation();

  console.log("Logged in:", page.url());
  await browser.close();
})();

Manejo de multifactor + CAPTCHA

Algunos sitios combinan CAPTCHA con autenticación multifactor:

# Step 1: Solve CAPTCHA and submit login
token = solve_recaptcha(site_key, login_url)
resp = session.post(login_url, data={
    "username": "user@example.com",
    "password": "your_password",
    "g-recaptcha-response": token
})

# Step 2: Handle MFA page (if redirected)
if "verify" in resp.url or "mfa" in resp.url:
    # Your MFA code logic here
    mfa_code = get_mfa_code()
    resp = session.post(resp.url, data={"code": mfa_code})

# Step 3: Verify logged in
assert "dashboard" in resp.url

Solución de problemas

Asunto Causa Solución
Iniciar sesión regresa a la página CAPTCHA Token caducado Resuelva y envíe en 60 segundos
"Credenciales no válidas" con contraseña correcta Falta el token CSRF Extraiga e incluya el token CSRF de la página de inicio de sesión
Sesión perdida después de iniciar sesión Las cookies no persistieron Utilice requests.Session() o cookies del navegador
reCAPTCHA v3 bloquea a pesar del token Puntuación demasiado baja CaptchaAI optimiza para obtener puntuaciones altas; verificar el parámetro de acción

Preguntas frecuentes

¿Puedo automatizar los inicios de sesión en cualquier sitio web?

CaptchaAI maneja el componente CAPTCHA. Su automatización debe manejar el formulario de inicio de sesión en sí (rellenar campos, enviar, administrar cookies). La legalidad depende de su autorización para acceder a la cuenta.

¿Necesito un navegador para automatizar el inicio de sesión?

No siempre. Muchas páginas de inicio de sesión aceptan solicitudes HTTP POST estándar. Utilice un navegador sólo cuando el inicio de sesión requiera la ejecución de JavaScript o interacciones complejas.

¿Cómo manejo el mantenimiento de la sesión después de iniciar sesión?

Utilice requests.Session() en Python o mantenga cookies en la instancia de su navegador. Las cookies de sesión del inicio de sesión son necesarias para todas las solicitudes autenticadas posteriores.

Guías relacionadas

  • Selenium CAPTCHA con Python
  • Puppeteer CAPTCHA con Node.js
  • Playwright CAPTCHA handling
Los comentarios están deshabilitados para este artículo.

Publicaciones relacionadas

Troubleshooting Errores y solución de problemas de Cloudflare Turnstile
Errores frecuentes de Cloudflare Turnstile: códigos de error de la API, fallos de validación, token rechazado y cómo corregir cada problema con Captcha AI.

Errores frecuentes de Cloudflare Turnstile: códigos de error de la API, fallos de validación, token rechazado...

Apr 23, 2026
Explainers Guía de detección de implementación de Cloudflare Turnstile
Cómo detectar la implementación de Cloudflare Turnstile: desde HTML estático y llamadas Java Script hasta carga dinámica, con código en Python y Puppeteer.

Cómo detectar la implementación de Cloudflare Turnstile: desde HTML estático y llamadas Java Script hasta carg...

Apr 18, 2026
Use Cases Manejo de CAPTCHA del dramaturgo con CaptchaAI
Guía práctica sobre Manejo de CAPTCHA del dramaturgo con Captcha AI con escenarios realistas, consejos de workflow y pasos accionables con Captcha AI.

Guía práctica sobre Manejo de CAPTCHA del dramaturgo con Captcha AI con escenarios realistas, consejos de work...

Apr 26, 2026