In questo articolo abbiamo cercato di rispondere a tutte le domande principali. Il primo passo per risolvere il problema è capire quale sistema di protezione viene utilizzato. A questo scopo puoi consultare l’elenco dei captcha e dei sistemi di protezione antibot più diffusi, dove trovi esempi visivi e caratteristiche chiave che ti aiutano a identificare rapidamente con cosa hai a che fare.
Se scopri che sul tuo sito viene utilizzato ImageToText, il passo successivo è analizzarne più nel dettaglio le proprietà e il funzionamento. In questo stesso articolo puoi anche studiare la guida all’integrazione di ImageToText, per comprendere a fondo come opera sul tuo sito. Questo ti permetterà non solo di capire la protezione attuale, ma anche di pianificarne correttamente la manutenzione.
Lavorare con CapMonster Cloud via API di solito prevede i seguenti passaggi:
type - ImageToTextTask
body - contenuto del file del captcha codificato in base64. Assicurati che il valore venga inviato su una sola riga, senza interruzioni;
capMonsterModule (opzionale) - nome del modulo, ad esempio “yandex“. Un altro modo per fornire il nome del modulo e l’elenco di tutti i moduli disponibili è disponibile qui;
Puoi anche impostare altri parametri opzionali:
recognizingThreshold - soglia di riconoscimento del captcha con valori possibili da 0 a 100;
case - considerare il maiuscolo/minuscolo nella risoluzione oppure no. Valori possibili: true, false;
numeric - 1 — se il captcha contiene solo numeri. Valori possibili: 0, 1;
math - false — non impostato per default;
true — il captcha richiede un’operazione matematica (ad esempio, captcha 2 + 6 restituirà 8).
Importante: per il modulo captcha_math non usare il parametro 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"; // Inserisci la tua chiave API di CapMonster Cloud
async function solveImageToTextAndFillField() {
const cmcClient = CapMonsterCloudClientFactory.Create(
new ClientOptions({ clientKey: API_KEY })
);
// Puoi anche controllare il saldo
const balance = await cmcClient.getBalance();
console.log("Balance:", balance);
// 1. Avvia Playwright e apri la pagina con il modulo
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. Ottieni l’URL del captcha dalla pagina (esempio tramite selettore <img>)
// 2. Ottieni l’URL del captcha dalla pagina (esempio tramite selettore <img>)
const captchaUrl = await page.getAttribute("#captcha-img", "src");
// 3. Scarica l’immagine e converti in Base64
const response = await fetch(captchaUrl);
const imageBuffer = await response.arrayBuffer();
const imageBase64 = Buffer.from(imageBuffer).toString('base64');
// 4. Crea una richiesta per risolvere ImageToText
const imageToTextRequest = new ImageToTextRequest({
body: imageBase64,
CapMonsterModule: CapMonsterModules.YandexWave, // o un altro modulo
Case: true,
numeric: 0,
recognizingThreshold: 65,
math: false
});
// 5. Ottieni la soluzione del captcha
const result = await cmcClient.Solve(imageToTextRequest);
console.log("Captcha solution:", result.solution.text);
// 6. Inserisci la soluzione nel campo del modulo e invia
await page.fill("#captcha-input", result.solution.text); // Sostituire con il tuo selettore
await page.click("#submit-button"); // Sostituire con il selettore del tuo pulsante
await page.waitForLoadState("networkidle");
console.log("Modulo inviato con soluzione del captcha");
// 7. Chiudi il browser
await browser.close();
}
solveImageToTextAndFillField().catch(console.error);
Passo 1. Scegli l’approccio
Per prima cosa devi decidere come utilizzare il captcha:
Opzione 1 — Fornitore esterno
Adatto se serve una rapida integrazione e minima manutenzione.
Vantaggi:
Svantaggi:
Opzione 2 — CAPTCHA testuale personalizzato
Adatto se serve pieno controllo e integrazione su misura.
Vantaggi:
Svantaggi:
Passo 2. Implementa la generazione del captcha
Per un fornitore
Per captcha personalizzato
Passo 3. Mostra il captcha all’utente
Importante: ogni caricamento deve generare un nuovo codice.
Passo 4. Trasmetti i dati al server
Al momento dell’invio del modulo, invia:
Per captcha personalizzato, il codice non deve essere memorizzato sul client — solo sul server.
Passo 5. Verifica il captcha sul server
Fornitore
Captcha personalizzato
Passo 6. Prendi una decisione
Passo 7. Rafforza la protezione (consigliato)
Anche per un captcha testuale è consigliabile aggiungere:
Assicurati che:
Se hai un sito con captcha già installato o un altro sistema di protezione e non hai accesso al codice — nessun problema! È abbastanza semplice determinare quale tecnologia viene utilizzata. Per verificare il corretto funzionamento, puoi usare il servizio di riconoscimento CapMonster Cloud in un ambiente di test isolato per assicurarti che il trattamento dei token e la logica di verifica funzionino correttamente.
Per un captcha basato su immagini, basta identificare il sistema, studiarne il comportamento e assicurarsi che la protezione funzioni correttamente. In questo articolo abbiamo mostrato come identificare un captcha basato su immagini (ComplexImage) e come collegarlo o riconfiguralo per mantenere e controllare la protezione con sicurezza.