Cennik rozwiązania tekstowa CAPTCHA (ImageToText)
| CAPTCHA | Cena (USD) |
|---|---|
$ 0.30 1000 tokenów |
W tym artykule staraliśmy się odpowiedzieć na wszystkie najważniejsze pytania. Pierwszym krokiem w rozwiązywaniu problemu jest ustalenie, jaki system ochrony jest używany. W tym celu możesz skorzystać z listy popularnych captcha i systemów ochrony antybotowej, gdzie znajdziesz przykłady graficzne oraz kluczowe cechy, które pomogą szybko rozpoznać, z czym masz do czynienia.
Jeśli okaże się, że na Twojej stronie używana jest tekstowa CAPTCHA (ImageToText), kolejnym krokiem będzie dokładniejsze poznanie jej właściwości i sposobu działania. W tym artykule możesz również zapoznać się z instrukcją integracji tekstowa CAPTCHA (ImageToText), aby w pełni zrozumieć, jak funkcjonuje ona na Twojej stronie. Dzięki temu nie tylko lepiej poznasz obecną ochronę, ale też świadomie zaplanujesz jej dalsze utrzymanie.
Jak rozwiązać tekstową CAPTCHA za pomocą CapMonster Cloud
- Otwórz stronę z formularzem i upewnij się, że CAPTCHA jest widoczna.
- Spróbuj wysłać formularz bez rozwiązania CAPTCHA — serwer powinien zwrócić błąd.
- Po prawidłowym rozwiązaniu CAPTCHA formularz powinien zostać wysłany bez błędów.
Praca z CapMonster Cloud poprzez API zazwyczaj obejmuje następujące kroki:
type - ImageToTextTask
body - zawartość pliku CAPTCHA zakodowana w base64. Upewnij się, że wartość jest wysyłana w jednej linii, bez znaków nowej linii;
capMonsterModule (opcjonalnie) - nazwa modułu, na przykład „yandex”. Alternatywny sposób przekazania nazwy modułu oraz listę wszystkich dostępnych modułów znajdziesz tutaj;
Możesz też ustawić inne opcjonalne parametry:
recognizingThreshold - próg rozpoznawania CAPTCHA z możliwą wartością od 0 do 100;
case - czy uwzględniać wielkość liter przy rozwiązywaniu. Możliwe wartości: true, false;
numeric - 1 — jeśli CAPTCHA składa się wyłącznie z cyfr. Możliwe wartości: 0, 1;
math - false — domyślnie nie ustawione;
true — CAPTCHA wymaga wykonania działania matematycznego (na przykład CAPTCHA 2 + 6 zwróci wartość 8).
Ważne: dla modułu captcha_math nie używaj parametru 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"; // Podaj swój klucz API CapMonster Cloud
async function solveImageToTextAndFillField() {
const cmcClient = CapMonsterCloudClientFactory.Create(
new ClientOptions({ clientKey: API_KEY })
);
// W razie potrzeby sprawdź saldo
const balance = await cmcClient.getBalance();
console.log("Balance:", balance);
// 1. Uruchom Playwright i otwórz stronę z formularzem
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. Pobierz URL CAPTCHA ze strony (przykład przez selektor <img>)
// 2. Pobierz URL CAPTCHA ze strony (przykład przez selektor <img>)
const captchaUrl = await page.getAttribute("#captcha-img", "src");
// 3. Pobierz obraz i przekonwertuj go na Base64
const response = await fetch(captchaUrl);
const imageBuffer = await response.arrayBuffer();
const imageBase64 = Buffer.from(imageBuffer).toString('base64');
// 4. Utwórz żądanie rozwiązania tekstowej CAPTCHA
const imageToTextRequest = new ImageToTextRequest({
body: imageBase64,
CapMonsterModule: CapMonsterModules.YandexWave, // lub inny moduł
Case: true,
numeric: 0,
recognizingThreshold: 65,
math: false
});
// 5. Pobierz rozwiązanie CAPTCHA
const result = await cmcClient.Solve(imageToTextRequest);
console.log("Captcha solution:", result.solution.text);
// 6. Wstaw rozwiązanie w pole formularza i wyślij
await page.fill("#captcha-input", result.solution.text); // Zamień na swój selektor
await page.click("#submit-button"); // Zamień na selektor przycisku
await page.waitForLoadState("networkidle");
console.log("Formularz wysłany z rozwiązaniem CAPTCHA");
// 7. Zamknij przeglądarkę
await browser.close();
}
solveImageToTextAndFillField().catch(console.error);
Krok 1. Wybierz podejście
Najpierw zdecyduj, w jaki sposób będziesz używać CAPTCHA:
Opcja 1 — zewnętrzny dostawca
Odpowiednia, jeśli zależy Ci na szybkiej implementacji i minimalnej obsłudze.
Zalety:
- Szybka integracja
- Gotowa ochrona przed botami
- Brak konieczności samodzielnej aktualizacji algorytmów
Wady:
- Zależność od zewnętrznej usługi
- Ograniczone możliwości dostosowania
Opcja 2 — własna tekstowa CAPTCHA
Odpowiednia, jeśli potrzebujesz pełnej kontroli i integracji dopasowanej do swoich potrzeb.
Zalety:
- Pełna kontrola nad logiką i wyglądem
- Brak zależności od zewnętrznych usług
- Możliwość dostosowania do konkretnych scenariuszy
Wady:
- Musisz samodzielnie zaimplementować ochronę przed botami
- Wymaga utrzymania i aktualizacji w czasie
Krok 2. Zaimplementuj generowanie CAPTCHA
Dla dostawcy zewnętrznego
- Zarejestruj się w usłudze
- Uzyskaj klucze (site key / secret key)
- Podłącz skrypt na stronie z formularzem
Dla własnej CAPTCHA
- Wygeneruj losowy ciąg znaków (cyfry lub litery)
- Narysuj go na obrazie (Canvas, SVG lub generowanie po stronie serwera)
- Dodaj zniekształcenia: szum, linie, obrót znaków
Krok 3. Wyświetl CAPTCHA użytkownikowi
- Umieść obraz CAPTCHA obok formularza
- Dodaj pole tekstowe do wpisywania odpowiedzi
- Zaimplementuj przycisk odświeżania CAPTCHA
Ważne: przy każdym załadowaniu strony musi być generowany nowy kod.
Krok 4. Wyślij dane na serwer
Podczas wysyłania formularza przekaż:
- Tekst wpisany przez użytkownika
- Identyfikator CAPTCHA lub token sesji
Dla własnej CAPTCHA kod nie może być przechowywany po stronie klienta — tylko na serwerze.
Krok 5. Zweryfikuj CAPTCHA na serwerze
Dostawca zewnętrzny
- Wyślij token CAPTCHA na serwery dostawcy
- Odbierz wynik weryfikacji (sukces / błąd)
Własna CAPTCHA
- Porównaj wpisany tekst z zapisaną wartością
- Uwzględnij czas ważności CAPTCHA (np. 1–2 minuty)
Krok 6. Podejmij decyzję
- Jeśli CAPTCHA została rozwiązana — wykonaj akcję (logowanie, rejestracja, wysłanie formularza)
- Jeśli nie — pokaż błąd i wygeneruj nową CAPTCHA
Krok 7. Wzmocnij ochronę (zalecane)
Nawet dla tekstowej CAPTCHA warto dodać:
- Ograniczenie liczby prób
- Powiązanie z IP, sesją lub ciasteczkami
- Tymczasowe (jednorazowe) tokeny
- Logowanie podejrzanej aktywności
Upewnij się, że:
- CAPTCHA nie jest ponownie generowana przed weryfikacją;
- Kod jest przechowywany osobno dla każdej sesji lub tokena;
- CAPTCHA nie wygasła.
Obsługiwane captchas
Jeśli natrafisz na stronę z już zainstalowaną CAPTCHA lub innym systemem ochrony i nie masz dostępu do kodu — nic nie szkodzi! Identyfikacja używanej technologii jest dość prosta. Do sprawdzenia poprawności działania można użyć usługi rozpoznawania CapMonster Cloud w odizolowanym środowisku testowym, aby upewnić się, że mechanizm przetwarzania tokenów i logika weryfikacji działają poprawnie.
W przypadku tekstowej CAPTCHA z obrazu wystarczy rozpoznać system, poznać jego zachowanie i upewnić się, że ochrona działa poprawnie. W artykule pokazaliśmy, jak zidentyfikować tekstową CAPTCHA (ImageToText) i jak ją podłączyć lub ponownie skonfigurować, aby skutecznie utrzymywać ochronę i kontrolować jej działanie.