En este artículo hemos intentado responder a todas las preguntas clave. Para empezar a resolver la tarea, primero hay que determinar qué sistema de protección se está utilizando. Para ello, puedes consultar la lista de captchas y sistemas de protección antibot más populares, donde se muestran ejemplos visuales y señales clave que te ayudarán a identificar rápidamente con qué estás tratando.
Si descubres que tu sitio web utiliza ImageToText, el siguiente paso será analizar con más detalle sus propiedades y su funcionamiento. En este mismo artículo también puedes consultar la guía de integración de ImageToText para comprender por completo cómo funciona en tu sitio. Esto te permitirá no solo entender la protección actual, sino también planificar correctamente su mantenimiento.
Trabajar con CapMonster Cloud mediante la API suele implicar los siguientes pasos:
type - ImageToTextTask
body - el contenido del archivo del captcha codificado en base64. Asegúrese de que el valor se envíe en una sola línea, sin saltos de línea;
capMonsterModule (opcional) - nombre del módulo, por ejemplo “yandex”. Una forma alternativa de pasar el nombre del módulo y una lista de todos los módulos disponibles se puede encontrar aquí;
También puede configurar otros parámetros opcionales:
recognizingThreshold - umbral de reconocimiento del captcha con un valor posible de 0 a 100;
case - si se debe tener en cuenta el uso de mayúsculas y minúsculas al resolver. Valores posibles: true, false;
numeric - 1 — si el captcha consta solo de dígitos. Valores posibles: 0, 1;
math - false — no establecido por defecto;
true — el captcha requiere realizar una operación matemática (por ejemplo, el captcha 2 + 6 devolverá el valor 8).
Importante: para el módulo captcha_math no utilice el parámetro math: true.
https://api.capmonster.cloud/createTask{
"clientKey":"API_KEY",
"task": {
"type":"ImageToTextTask",
"body":"BASE64_BODY_HERE!"
}
}
{
"errorId":0,
"taskId":407533072
}https://api.capmonster.cloud/getTaskResult{
"clientKey":"API_KEY",
"taskId": 407533072
}
{
"errorId":0,
"status":"ready",
"solution": {
"text":"answer"
}
}
// npm install playwright @zennolab_com/capmonstercloud-client
// npx playwright install chromium
import { CapMonsterCloudClientFactory, ClientOptions, ImageToTextRequest, CapMonsterModules } from '@zennolab_com/capmonstercloud-client';
import { chromium } from 'playwright';
const API_KEY = "YOUR_API_KEY"; // Indique su clave API de CapMonster Cloud
async function solveImageToTextAndFillField() {
const cmcClient = CapMonsterCloudClientFactory.Create(
new ClientOptions({ clientKey: API_KEY })
);
// Opcionalmente, puede comprobar su saldo
const balance = await cmcClient.getBalance();
console.log("Balance:", balance);
// 1. Iniciar Playwright y abrir la página con el formulario
const browser = await chromium.launch({ headless: false });
const context = await browser.newContext();
const page = await context.newPage();
await page.goto("https://example.com/form"); // 2. Obtener la URL del captcha desde la página (ejemplo mediante el selector <img>)
// 2. Obtener la URL del captcha desde la página (ejemplo mediante el selector <img>)
const captchaUrl = await page.getAttribute("#captcha-img", "src");
// 3. Descargar la imagen y convertirla a Base64
const response = await fetch(captchaUrl);
const imageBuffer = await response.arrayBuffer();
const imageBase64 = Buffer.from(imageBuffer).toString('base64');
// 4. Crear una solicitud para resolver ImageToText
const imageToTextRequest = new ImageToTextRequest({
body: imageBase64,
CapMonsterModule: CapMonsterModules.YandexWave, // u otro módulo
Case: true,
numeric: 0,
recognizingThreshold: 65,
math: false
});
// 5. Obtener la solución del captcha
const result = await cmcClient.Solve(imageToTextRequest);
console.log("Captcha solution:", result.solution.text);
// 6. Insertar la solución en el campo del formulario y enviar
await page.fill("#captcha-input", result.solution.text); // Reemplace con su selector
await page.click("#submit-button"); // Reemplace con el selector de su botón
await page.waitForLoadState("networkidle");
console.log("Formulario enviado con la solución del captcha");
// 7. Cerrar el navegador
await browser.close();
}
solveImageToTextAndFillField().catch(console.error);
Paso 1. Elegir el enfoque
Primero debe decidir cómo utilizará el captcha:
Opción 1 — Proveedor externo
Adecuado si la rapidez de implementación y el mantenimiento mínimo son importantes.
Ventajas:
Desventajas:
Opción 2 — CAPTCHA de texto personalizada
Adecuado si necesita control total e integración adaptada a sus necesidades.
Ventajas:
Desventajas:
Paso 2. Implementar la generación del captcha
Para un proveedor
Para un captcha personalizado
Paso 3. Mostrar el captcha al usuario
Importante: cada carga debe generar un nuevo código.
Paso 4. Enviar los datos al servidor
Al enviar el formulario, envíe:
Para un captcha personalizado, el código no debe almacenarse en el cliente, solo en el servidor.
Paso 5. Verificar el captcha en el servidor
Proveedor
Captcha personalizado
Paso 6. Tomar una decisión
Paso 7. Reforzar la protección (recomendado)
Incluso para un captcha de texto, se recomienda añadir:
Asegúrese de que:
Si ha heredado un sitio web con un captcha u otro sistema de protección ya instalado y no tiene acceso al código, ¡no hay problema! Determinar qué tecnología se utiliza es bastante sencillo. Para comprobar el funcionamiento correcto, puede utilizar el servicio de reconocimiento de CapMonster Cloud en un entorno de prueba aislado para asegurarse de que la lógica de procesamiento de tokens y validación funcione correctamente.
En el caso de un captcha basado en imágenes, basta con identificar el sistema, estudiar su comportamiento y asegurarse de que la protección funcione correctamente. En este artículo mostramos cómo identificar un captcha de imagen (ComplexImage) y cómo conectarlo o reconfigurarlo para mantener y controlar la protección con confianza.