| 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.
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"
}
}
import asyncio
import base64
from capmonstercloudclient import CapMonsterClient, ClientOptions
from capmonstercloudclient.requests import ImageToTextRequest
# Podaj swój klucz API CapMonster Cloud
client_options = ClientOptions(api_key="YOUR_API_KEY")
cap_monster_client = CapMonsterClient(options=client_options)
# Obraz w formacie base64
image_base64 = "/9j/4AAQSkZJRgABAQAAAQABAAD/2wBDAAgGBgc...wwzqR4U/yZ//Z" # Zamień na rzeczywistą wartość
image_bytes = base64.b64decode(image_base64)
image_to_text_request = ImageToTextRequest(
image_bytes=image_bytes,
module_name=None, # Możesz wybrać moduł, na przykład YandexWave
threshold=50,
case=True,
numeric=0,
math=False
)
async def solve_captcha():
# W razie potrzeby sprawdź saldo
balance = await cap_monster_client.get_balance()
print("Balance:", balance)
solution = await cap_monster_client.solve_captcha(image_to_text_request)
return solution
responses = asyncio.run(solve_captcha())
print("Solution:", responses)
// 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:
Wady:
Opcja 2 — własna tekstowa CAPTCHA
Odpowiednia, jeśli potrzebujesz pełnej kontroli i integracji dopasowanej do swoich potrzeb.
Zalety:
Wady:
Krok 2. Zaimplementuj generowanie CAPTCHA
Dla dostawcy zewnętrznego
Dla własnej CAPTCHA
Krok 3. Wyświetl CAPTCHA użytkownikowi
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ż:
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
Własna CAPTCHA
Krok 6. Podejmij decyzję
Krok 7. Wzmocnij ochronę (zalecane)
Nawet dla tekstowej CAPTCHA warto dodać:
Upewnij się, że:
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.