In diesem Artikel haben wir versucht, alle wichtigen Fragen zu beantworten. Der erste Schritt bei der Lösung der Aufgabe besteht darin festzustellen, welches Schutzsystem eingesetzt wird. Dazu können Sie die Liste beliebter Captchas und Anti-Bot-Schutzsysteme heranziehen, in der visuelle Beispiele und zentrale Merkmale aufgeführt sind, die Ihnen helfen, schnell zu erkennen, womit Sie es zu tun haben.
Wenn Sie feststellen, dass auf Ihrer Website ImageToText eingesetzt wird, besteht der nächste Schritt darin, seine Eigenschaften und Funktionsweise genauer zu untersuchen. Ebenfalls in diesem Artikel finden Sie eine Anleitung zur Integration von ImageToText, damit Sie vollständig verstehen, wie das System auf Ihrer Website arbeitet. So können Sie nicht nur den aktuellen Schutz besser einschätzen, sondern auch seine Wartung vorausschauend planen.
Die Arbeit mit CapMonster Cloud über die API umfasst in der Regel folgende Schritte:
type - ImageToTextTask
body - der Inhalt der CAPTCHA-Datei, kodiert in Base64. Stellen Sie sicher, dass der Wert in einer einzigen Zeile ohne Zeilenumbrüche gesendet wird;
capMonsterModule (optional) - Modulname, zum Beispiel „yandex“. Eine alternative Methode zur Übergabe des Modulnamens sowie eine Liste aller verfügbaren Module finden Sie hier;
Zusätzlich können weitere optionale Parameter gesetzt werden:
recognizingThreshold - Erkennungsschwelle der CAPTCHA mit einem möglichen Wert von 0 bis 100;
case - ob die Groß- und Kleinschreibung bei der Lösung berücksichtigt werden soll. Mögliche Werte: true, false;
numeric - 1 — wenn die CAPTCHA nur aus Ziffern besteht. Mögliche Werte: 0, 1;
math - false — standardmäßig nicht gesetzt;
true — die CAPTCHA erfordert das Ausführen einer mathematischen Operation (zum Beispiel gibt die CAPTCHA 2 + 6 den Wert 8 zurück).
Wichtig: Verwenden Sie für das Modul captcha_math nicht den Parameter 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"; // Geben Sie Ihren CapMonster-Cloud-API-Schlüssel an
async function solveImageToTextAndFillField() {
const cmcClient = CapMonsterCloudClientFactory.Create(
new ClientOptions({ clientKey: API_KEY })
);
// Optional können Sie Ihr Guthaben prüfen
const balance = await cmcClient.getBalance();
console.log("Balance:", balance);
// 1. Playwright starten und die Seite mit dem Formular öffnen
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. CAPTCHA-URL von der Seite abrufen (Beispiel über <img>-Selektor)
// 2. CAPTCHA-URL von der Seite abrufen (Beispiel über <img>-Selektor)
const captchaUrl = await page.getAttribute("#captcha-img", "src");
// 3. Bild herunterladen und in Base64 konvertieren
const response = await fetch(captchaUrl);
const imageBuffer = await response.arrayBuffer();
const imageBase64 = Buffer.from(imageBuffer).toString('base64');
// 4. Eine Anfrage zum Lösen von ImageToText erstellen
const imageToTextRequest = new ImageToTextRequest({
body: imageBase64,
CapMonsterModule: CapMonsterModules.YandexWave, // oder ein anderes Modul
Case: true,
numeric: 0,
recognizingThreshold: 65,
math: false
});
// 5. Die CAPTCHA-Lösung abrufen
const result = await cmcClient.Solve(imageToTextRequest);
console.log("Captcha solution:", result.solution.text);
// 6. Die Lösung in das Formularfeld einfügen und absenden
await page.fill("#captcha-input", result.solution.text); // Ersetzen Sie dies durch Ihren Selektor
await page.click("#submit-button"); // Ersetzen Sie dies durch Ihren Button-Selektor
await page.waitForLoadState("networkidle");
console.log("Formular mit gelöster CAPTCHA gesendet");
// 7. Browser schließen
await browser.close();
}
solveImageToTextAndFillField().catch(console.error);
Schritt 1. Ansatz wählen
Zunächst müssen Sie entscheiden, wie Sie die CAPTCHA verwenden möchten:
Option 1 — Drittanbieter
Geeignet, wenn eine schnelle Implementierung und minimaler Wartungsaufwand wichtig sind.
Vorteile:
Nachteile:
Option 2 — Eigene Text-CAPTCHA
Geeignet, wenn volle Kontrolle und eine maßgeschneiderte Integration erforderlich sind.
Vorteile:
Nachteile:
Schritt 2. CAPTCHA-Generierung implementieren
Für einen Anbieter
Für eine eigene CAPTCHA
Schritt 3. CAPTCHA dem Benutzer anzeigen
Wichtig: Jeder Ladevorgang muss einen neuen Code erzeugen.
Schritt 4. Daten an den Server senden
Beim Absenden des Formulars senden Sie:
Bei einer eigenen CAPTCHA darf der Code nicht auf dem Client gespeichert werden — nur auf dem Server.
Schritt 5. CAPTCHA auf dem Server prüfen
Anbieter
Eigene CAPTCHA
Schritt 6. Entscheidung treffen
Schritt 7. Schutz verstärken (empfohlen)
Auch für eine Text-CAPTCHA sollten Sie Folgendes hinzufügen:
Stellen Sie sicher, dass:
Wenn Sie eine Website übernehmen, auf der bereits eine CAPTCHA oder ein anderes Schutzsystem installiert ist und Sie keinen Zugriff auf den Code haben — kein Problem! Es ist relativ einfach festzustellen, welche Technologie verwendet wird. Zur Überprüfung der korrekten Funktionsweise können Sie den Erkennungsdienst von CapMonster Cloud in einer isolierten Testumgebung nutzen, um sicherzustellen, dass die Token-Verarbeitung und die Validierungslogik korrekt funktionieren.
Im Fall einer bildbasierten CAPTCHA reicht es aus, das System zu identifizieren, sein Verhalten zu analysieren und sicherzustellen, dass der Schutz korrekt funktioniert. In diesem Artikel haben wir gezeigt, wie man eine Bild-CAPTCHA (ComplexImage) erkennt und wie man sie verbindet oder neu konfiguriert, um den Schutz zuverlässig zu warten und zu kontrollieren.