Precios de la solución CAPTCHA de texto (ImageToText)
| CAPTCHA | Precio (USD) |
|---|---|
$ 0.30 1000 tokens |
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 CAPTCHA de texto (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 CAPTCHA de texto (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.
Cómo resolver ImageToText CAPTCHA con CapMonster Cloud
- Abra la página con el formulario y asegúrese de que el captcha se muestre.
- Intente enviar el formulario sin resolver el captcha: el servidor debe devolver un error.
- Después de resolver correctamente el captcha, el formulario debe enviarse sin errores.
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:
- Integración rápida
- Protección contra bots lista para usar
- No es necesario actualizar los algoritmos por su cuenta
Desventajas:
- Dependencia de un servicio externo
- Personalización limitada
Opción 2 — CAPTCHA de texto personalizada
Adecuado si necesita control total e integración adaptada a sus necesidades.
Ventajas:
- Control total sobre la lógica y el diseño
- Sin dependencias externas
- Se puede adaptar a escenarios específicos
Desventajas:
- Debe implementar la protección contra bots por su cuenta
- Requiere mantenimiento y mejoras con el tiempo
Paso 2. Implementar la generación del captcha
Para un proveedor
- Regístrese en el servicio
- Obtenga las claves (site key / secret key)
- Conecte el script en la página con el formulario
Para un captcha personalizado
- Genere una cadena aleatoria (números o letras)
- Represéntela en una imagen (Canvas, SVG o generación del lado del servidor)
- Añada distorsiones: ruido, líneas, rotación de caracteres
Paso 3. Mostrar el captcha al usuario
- Inserte la imagen del captcha junto al formulario
- Añada un campo de entrada de texto
- Implemente un botón para actualizar el captcha
Importante: cada carga debe generar un nuevo código.
Paso 4. Enviar los datos al servidor
Al enviar el formulario, envíe:
- El texto introducido por el usuario
- El identificador del captcha o el token de sesión
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
- Envíe el token del captcha al servidor del proveedor
- Reciba el resultado de la verificación (correcto / error)
Captcha personalizado
- Compare el texto introducido con el valor almacenado
- Tenga en cuenta el tiempo de vida del captcha (por ejemplo, 1–2 minutos)
Paso 6. Tomar una decisión
- Si el captcha se ha superado, ejecute la acción (inicio de sesión, registro, envío del formulario)
- Si no, muestre un error y genere un nuevo captcha
Paso 7. Reforzar la protección (recomendado)
Incluso para un captcha de texto, se recomienda añadir:
- Límite en el número de intentos
- Vinculación a IP, sesión o cookies
- Tokens temporales (de un solo uso)
- Registro de actividades sospechosas
Asegúrese de que:
- El captcha no se regenere antes de la verificación;
- El código se almacene por separado para cada sesión o token;
- El captcha no haya expirado.
Captchas compatibles
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.