Cennik rozwiązania Cloudflare Challenge
| CAPTCHA | Cena (USD) |
|---|---|
$ 1.30 1000 tokenów | |
$ 1.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żywany jest Cloudflare Challenge, 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 systemu Cloudflare Challenge, aby w pełni zrozumieć, jak funkcjonuje on na Twojej stronie. Dzięki temu nie tylko lepiej poznasz obecną ochronę, ale też świadomie zaplanujesz jej dalsze utrzymanie.
Jak rozwiązać Cloudflare Challenge za pomocą CapMonster Cloud
- Otwórz stronę w trybie incognito tam, gdzie spodziewana jest weryfikacja Challenge i upewnij się, że captcha jest wyświetlana.
- Spróbuj wstawić w przeglądarce błędne ciasteczka cf_clearance (szczegóły poniżej) — serwer powinien zwrócić błąd.
- Po pomyślnym rozwiązaniu captcha strona powinna otworzyć się bez dalszej weryfikacji.
Praca z CapMonster Cloud poprzez API zazwyczaj obejmuje następujące kroki:
type - TurnstileTask
websiteURL - Adres strony, na której rozwiązywana jest captcha
websiteKey - Klucz Turnstile (można przekazać dowolny ciąg znaków)
cloudflareTaskType - cf_clearance
htmlPageBase64 - Zakodowana w Base64 strona HTML „Just a moment”, która jest zwracana z kodem 403 przy próbie wejścia na stronę chronioną tym mechanizmem.
userAgent - User-Agent przeglądarki. Przekaż tylko aktualny UA z systemu Windows.
Do tego zadania konieczne jest również użycie własnych proxy:
proxyType :
- http - zwykłe proxy HTTP/HTTPS;
- https - spróbuj tego, jeśli „http” nie działa (wymagane dla niektórych niestandardowych proxy);
- socks4 - proxy typu SOCKS4;
- socks5 - proxy typu SOCKS5.
proxyAddress - Adres IP proxy IPv4/IPv6.
proxyPort - Port proxy.
proxyLogin - Login serwera proxy.
proxyPassword - Hasło serwera proxy.
https://api.capmonster.cloud/createTask{
"clientKey":"API_KEY",
"task": {
"type":"TurnstileTask",
"websiteURL":"https://example.com",
"websiteKey":"xxxxxxxxxx",
"cloudflareTaskType": "cf_clearance",
"htmlPageBase64": "PCFET0NUWVBFIGh0...vYm9keT48L2h0bWw+",
"userAgent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/150.0.0.0 Safari/537.36",
"proxyType":"http",
"proxyAddress":"8.8.8.8",
"proxyPort":8080,
"proxyLogin":"proxyLoginHere",
"proxyPassword":"proxyPasswordHere"
}
}
{
"errorId":0,
"taskId":407533072
}https://api.capmonster.cloud/getTaskResult{
"clientKey":"API_KEY",
"taskId": 407533072
}
{
"errorId": 0,
"status": "ready",
"solution": {
"cf_clearance": "1tarGvbY2_ZhQdYxpSBloao.FoOn9VtcJtmb_IQ_hCE-1761217338-1.2.1.1-vyVPoLYIGX0VCJomVuLjF7n0kdM0PXaPjpDsRcohxGr7hb2CE7WfcHpmQZ70goqEjdWxPsDhSVaKNTz9opxWguiNdWEEq_.SceWXIqfP7tnEb69f3bP0mixNqcWy_5P_9INpoAEqr1k7aYU0r45PT4gPr5pwHxedVySyLRdoBXIJasdTE52YOQ3NPdGWTwQ_3h2n_wYqqIvf0kCSAvimRrmsgZxomlyejwqPI6ZHi.w"
}
}
// npm install playwright @zennolab_com/capmonstercloud-client
// npx playwright install chromium
import { chromium } from 'playwright';
import {
CapMonsterCloudClientFactory,
ClientOptions,
TurnstileRequest
} from '@zennolab_com/capmonstercloud-client';
// Ustawienia — zamień na swoje wartości
const API_KEY = 'YOUR_API_KEY';
const TARGET_URL = 'https://www.example.com';
const SITE_KEY = 'xxxxx'; // można przekazać dowolny ciąg
const USER_AGENT = 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/150.0.0.0 Safari/537.36';
// Ustawienia proxy
const proxy = {
proxyType: 'http',
proxyAddress: '8.8.8.8',
proxyPort: 8080,
proxyLogin: 'proxyLogin',
proxyPassword: 'proxyPassword'
};
async function main() {
const cmcClient = CapMonsterCloudClientFactory.Create(
new ClientOptions({ clientKey: API_KEY })
);
// Uruchamiamy przeglądarkę
const browser = await chromium.launch({
headless: false,
proxy: proxy.proxyAddress ? {
server: `${proxy.proxyType}://${proxy.proxyAddress}:${proxy.proxyPort}`,
username: proxy.proxyLogin,
password: proxy.proxyPassword
} : undefined
});
// Tworzymy kontekst z odpowiednim User-Agent i rozmiarem okna (opcjonalnie)
const context = await browser.newContext({ userAgent: USER_AGENT, viewport: { width: 1280, height: 800 } });
// Tworzymy stronę i ładujemy docelowy URL
const page = await context.newPage();
const resp = await page.goto(TARGET_URL, { waitUntil: 'domcontentloaded', timeout: 60000 });
console.log('Status początkowego żądania:', resp?.status());
// Pobieramy HTML strony i konwertujemy na Base64 dla CapMonster
const htmlBase64 = Buffer.from(await page.content(), 'utf-8').toString('base64');
// Tworzymy zadanie Turnstile, aby uzyskać cf_clearance
const solveResult = await cmcClient.Solve(new TurnstileRequest({
websiteURL: TARGET_URL,
websiteKey: SITE_KEY,
cloudflareTaskType: 'cf_clearance',
htmlPageBase64: htmlBase64,
userAgent: USER_AGENT,
proxy: proxy.proxyAddress ? proxy : undefined
}));
const cf_clearance = solveResult?.solution?.cf_clearance;
if (!cf_clearance) {
console.error('Nie udało się uzyskać cf_clearance z CapMonster:', solveResult);
await browser.close();
return;
}
console.log('Uzyskano cf_clearance:', cf_clearance);
// Dodajemy cf_clearance cookie do kontekstu przeglądarki
await context.addCookies([{
name: 'cf_clearance',
value: cf_clearance,
domain: '.' + new URL(TARGET_URL).hostname,
path: '/',
httpOnly: true,
secure: true
}]);
console.log('Cookie cf_clearance zostało pomyślnie dodane do przeglądarki.');
// Ponownie otwieramy stronę z ustawionym cf_clearance
const page2 = await context.newPage();
const resp2 = await page2.goto(TARGET_URL, { waitUntil: 'domcontentloaded', timeout: 60000 });
console.log('Status żądania po ustawieniu cf_clearance:', resp2?.status());
await browser.close();
console.log('Skrypt zakończył działanie.');
}
main().catch(err => {
console.error('Wystąpił błąd:', err);
process.exit(1);
});
http.request.uri.path contains "/login"Obsługiwane captchas
Jeśli przejąłeś stronę internetową, na której jest już zainstalowany captcha lub inny system zabezpieczeń, a jednocześnie nie masz dostępu do kodu — to nic strasznego! Dość łatwo jest ustalić, jaka dokładnie technologia jest używana. Aby sprawdzić poprawność działania, możesz skorzystać z usługi rozpoznawania CapMonster Cloud w odizolowanym środowisku testowym, żeby upewnić się, że mechanizm przetwarzania tokenów i logika weryfikacji działają prawidłowo.
W przypadku Cloudflare Challenge wystarczy rozpoznać system, przeanalizować jego zachowanie i upewnić się, że zabezpieczenie działa poprawnie. W artykule pokazaliśmy, jak zidentyfikować Cloudflare Challenge oraz gdzie znaleźć instrukcje dotyczące jego podłączenia lub ponownej konfiguracji, aby móc pewnie utrzymywać ochronę i kontrolować jej działanie.