Scarnox · Blog

Jak obejść captcha w uzasadnionej automatyzacji i testach

Legalne obejście captcha oznacza przeprowadzenie własnej zautomatyzowanej pracy przez wyzwanie bez łamania zasad serwisu i bez atakowania jego użytkowników. W praktyce obejmuje to cztery przypadki: automatyzację przepływu, który należy do Ciebie, testowanie własnej strony, budowanie narzędzi dostępnościowych oraz zbieranie danych publicznych w odpowiedzialnym tempie. Najszybszą uczciwą drogą jest zwykle w ogóle nie wywołać captcha. Gdy nie da się tego uniknąć, API solvera, takie jak Scarnox, może zwrócić token, którego oczekuje strona.

Ten przewodnik przedstawia podejścia w kolejności, w jakiej warto je wypróbować, i wskazuje granice, których nie należy przekraczać.

Zacznij od pytania, dlaczego pojawiła się captcha

Captcha to sygnał. Serwis uznał, że żądanie wygląda na zautomatyzowane lub ryzykowne. Zanim spróbujesz przejść przez wyzwanie, sprawdź, co je wywołało:

Usunięcie przyczyny często eliminuje captcha całkowicie, co jest lepsze niż rozwiązywanie jej przy każdym żądaniu.

Wypróbuj podejścia, które omijają wyzwanie

  1. Użyj oficjalnego API, jeśli istnieje. Wiele serwisów udostępnia dane przez API z własnymi kluczami i limitami. Ta droga jest szybsza, stabilniejsza i wyraźnie dozwolona.
  2. Zwolnij i rozłóż żądania w czasie. Dodawaj opóźnienia między żądaniami, ogranicz równoległość i wycofuj się, gdy pojawi się ostrzeżenie. Stałe tempo kilku żądań na minutę wygląda dla serwisu zupełnie inaczej niż seria setek.
  3. Utrzymuj sesje. Używaj ponownie ciasteczek i spójnego profilu przeglądarki w obrębie sesji, zamiast zaczynać od zera na każdej stronie. Przewodnik o fingerprintingu przeglądarki wyjaśnia, dlaczego to ma znaczenie.
  4. Sprawdź robots.txt i regulamin przed startem, a nie po zablokowaniu. Szanuj to, czego serwis oczekuje.

Używaj kluczy testowych i środowisk testowych

Jeśli captcha blokuje Twoje własne środowisko stagingowe, nie kieruj testów na produkcję, by ją obejść. Większość dostawców captcha, w tym Google i Cloudflare, publikuje klucze testowe do developmentu. Te klucze generują poprawny token bez prawdziwego wyzwania i są właściwym narzędziem do zautomatyzowanych testów. Możesz też poprosić swój zespół o wyłączenie captcha na serwerze stagingowym. Przewodnik o captcha w testach automatycznych przechodzi przez tę konfigurację.

Rozwiąż captcha przez API, gdy stoi na drodze uzasadnionej pracy

Niektóre captcha będą pojawiać się mimo dobrego dawkowania żądań. Przykładem jest zadanie monitorujące portal własnego dostawcy. W takim przypadku właściwym narzędziem jest API solvera.

Scarnox to API do rozwiązywania captcha. Obecnie jedynym działającym typem zadania jest PopularCaptcha, bez proxy. Twój kod wysyła sitekey i adres strony, a otrzymuje token do przesłania wraz z formularzem:

import requests

r = requests.post(
    "https://api.scarnox.com/api/tasks/create",
    headers={"Authorization": "Bearer scarnox_YOURAPIKEY"},
    json={
        "captcha_type": "PopularCaptchaTaskProxyless",
        "site_key": "10000000-ffff-ffff-ffff-000000000001",
        "site_url": "https://example.com/login",
    },
    timeout=185,
)
data = r.json()
token = data["solution"]["token"] if data.get("errorId") == 0 else None

Token wygasa po około dwóch minutach, więc prześlij go od razu. Przewodnik o rozwiązywaniu captcha w Pythonie zawiera pełny przykład. Inne typy captcha, w tym reCAPTCHA, Cloudflare Turnstile i Arkose, są wkrótce. Dopóki nie zostaną uruchomione, nie zakładaj, że solver je obsługuje.

Dostępność to także uzasadniony powód

Captcha stanowią barierę dla osób korzystających z czytników ekranu, przełączających urządzenia lub mających problemy poznawcze albo wzrokowe. Jeśli budujesz narzędzia dostępnościowe albo działasz w imieniu użytkowników, którzy nie mogą ukończyć wyzwania, pierwszym krokiem powinno być poproszenie właściciela serwisu o dostępną alternatywę. Wiele serwisów taką oferuje. Automatyzowanie captcha nie zastąpi tej rozmowy.

Co nie jest legalne

Niektóre zastosowania rozwiązywania captcha są poza granicami, bez względu na podany powód. Nie używaj solverów ani żadnego obejścia do:

Te zastosowania krzywdzą prawdziwych ludzi, łamią regulaminy serwisów i narażają na poważne ryzyko prawne. Scarnox ich nie obsługuje, a ten przewodnik ich nie opisuje.

Scrapuj odpowiedzialnie

Jeśli Twoje obejście służy zbieraniu danych publicznych, miej na uwadze te kwestie:

Podsumowanie

Najpierw unikaj captcha, usuwając przyczynę. Do testów używaj kluczy testowych. Do uzasadnionych zadań, które mimo to trafiają na wyzwanie, używaj API solvera w ramach działających typów zadań. Trzymaj się z dala od zastosowań wymienionych wyżej i scrapuj w tempie, które serwis udźwignie.

Następne kroki