Menu dokumentacja

Jak obejść każde captcha z pomocą zadań AntiGate

Po latach intensywnych badań mamy przyjemność zaprezentować uniwersalne rozwiązanie, które pozwoli Twoim robotom obejść bramki captcha utworzone przez ludzi. Technologia "AntiGate" to szablony scenariuszy dzięki którym nasi pracownicy wykonają określone polecenia.

W pewnym momencie Twoja aplikacja natknie się na zautomatyzowaną "bramkę" ochronną z jakimś nowym captcha, kodowanymi skryptami i tak dalej. Tu właśnie na pomoc przychodzi AntiGate. Możesz łatwo oddelegować jednego z naszych pracowników do przygotowania prawdziwej sesji przeglądarki.

  • Na początek wybierz szablon. Możesz wykorzystać istniejący, lub stworzyć własny. Szablon to zestaw kolejnych kroków do wykonania przez pracownika.
  • Następnie, podaj wszelkie dane jakich szablon wymaga, jak wartości do wpisania w polu, selektor CSS pola input lub adres strony na którą chcesz, byśmy weszli. Więcej o szablonach powiemy w dalszej części.
  • Trzeci, opcjonalny krok to proxy. Jeśli docelowa strona kojarzy adres IP z każdym ciasteczkiem sesji, potrzebujesz proxy.
Mając te trzy rzeczy, tworzymy zadanie poprzez nasze API. Pracownik przechodzi na zadaną stronę wyposażony w specjalną wtyczkę przeglądarki i wykonuje poszczególne kroki ręcznie lub automatycznie. Na koniec dane sesji przeglądarki (cookies, localStorage, sygnatura przeglądarki) są przechwytywane i zwracane do Twojej aplikacji. Do Ciebie należy odtworzenie sesji pracownika korzystając ze zwróconych danych i dalsza praca, jak gdyby wykonywał ją człowiek. Fajnie, prawda? :)

Czym są szablony AntiGate?

Szablon AntiGate definiuje dokładny scenariusz, jaki mają wykonać nasi pracownicy. Na szablon składają się wykonywane kolejno etapy. Po ukończeniu każdego z nich, pracownik przechodzi do następnego. Gdy wszystkie zostaną wykonane, zadanie dobiega końca, a do Twojej aplikacji odsyłana jest migawka sesji pracownika.

Jakie są rodzaje etapów?

  • Wypełnianie pola tekstowego ręcznie lub automatycznie.
  • Oczekiwanie na pojawienie się lub zniknięcie tekstu na stronie.
  • Oczekiwanie na pojawienie się lub zniknięcie na stronie elementu DOM określonego przez CSS.
  • Oczekiwanie na pojawienie się lub zniknięcie jakiegoś słowa kluczowego w adresie URL przeglądarki pracownika.
Pole "description for workers" szablonu może zawierać dowolne inne instrukcje dla pracownika. Przykładowo: "Rozwiąż captcha i wciśnij przycisk wyślij".

Oto przykład wykorzystania. Przejdź do Centrum deweloperów i stwórz darmowy szablon testowy. Nie martw się, nic się nie zepsuje.

Kliknij, aby dodać szablon
Kliknij, aby wczytać przykład
Zwróć uwagę na sekcję etapów

Załadowano przykład demonstracyjny. Możesz go zapisać na swoim koncie i wypróbować samodzielnie później. Poznajmy pełną gamę atrybutów szablonu:

  • Nazwa szablonu. Raz zapisana, nie może zostać zmieniona. Po opublikowaniu, szablon będzie dostępny w API pod tą właśnie nazwą.
  • Opis dla klientów. Ogólnodostępne szablony można znaleźć w naszym katalogu szablonów.
  • Opis dla pracowników. Tekst, który pracownicy zobaczą u góry strony.
    Przykład interfejsu pracowników
  • Zmienne. Lista nazw zmiennych, które można dodać do wykorzystania w etapach zamiast wartości kodowanych na sztywno. W tym przykładzie, mamy dwie zmienne: "login" i "password". Są one wykorzystywane w etapach 1 i 2 do uzupełnienia demonstracyjnego formularza logowania. Tą drogą można przekazać dane poprzez API zamiast wpisywać wartości na stałe do szablonu.
    Zmienne użyte w etapach 1 i 2
  • Etapy dla pracownika. Tu można edytować i zmieniać kolejność wykonywania kroków scenariusza. W naszym przykładzie:
    1. Automatycznie uzupełnij pole tekstowe o selektorze CSS "#login". Wartość dla tego pola określa zmienna "login".
    2. Automatycznie uzupełnij pole tekstowe o selektorze CSS "#password". Wartość dla tego pola określa zmienna "password".
    3. Poczekaj na pojawienie się na stronie tekstu kontrolnego, który jest tu zaprogramowany na stałe jako "Test passed with login".

Teraz możesz zapisać szablon, po czym pojawi się on w Centrum deweloperów. Zauważ, że otrzyma najpierw status "Sandbox", co oznacza, że jest on niedostępny póki co w API. Istnieje on tylko dla Ciebie w celu wypróbowania - w przykładzie to Ty jesteś swoim pracownikiem rozwiązującym.

Testowanie szablonów

Na tym etapie należy skorzystać z przeglądarki Chrome i zalecamy utworzenie w niej nowego profilu użytkownika, gdyż będzie trzeba zainstalować naszą wtyczkę, która z kolei otrzyma dostęp do ciasteczek nowego profilu.

Następnie, na swojej karcie szablonu wciśnij przycisk "test".

Postępuj zgodnie z poleceniami i pobierz wtyczkę dla swojej platformy. Następnie przeładuj stronę, aby ją uaktywnić, uzupełnij pola "login" i "password" dowolnymi wartościami i wciśnij "Launch Test". Otworzy się nowe okno, wyglądające tak:

W pobliżu pasku adresu znajdzie się niebieski pasek, który wtyczka dodaje u góry docelowej strony. To w ten sposób pracownicy są informowani o poleceniach i kontrolują wykonywanie zadania.

Zwróć uwagę, że pola login i hasło są ukryte podczas wprowadzania do nich wartości. Jest to zamierzone. Pracownicy będą wprawdzie mieli dostęp do danych zadania poprzez konsolę deweloperów, ale w 99.99% przypadków ta wiedza ich nie interesuje.

Przy rozwiązywaniu Recaptcha wciśnij przycisk "Sign In". Zostanie wykonany ostatni etap szablonu - "WAIT_CONTROL_TEXT_PRESENT". Wtyczka poszuka frazy kontrolnej "Test passed with login", która jest zdefiniowana na stałe w twoim szablonie. Zakładka zamyka się automatycznie, a migawka sesji pojawi się w polu wyników.

Przykłady wyników

Te same dane z migawki można odebrać z API, ale aby szablon był dostępny dla API, musimy go najpierw opublikować.

Publikowanie szablonów

Możesz opublikować szablon albo jako prywatny, albo publiczny.

  • Prywatne szablony są dostępne tylko w parze z Twoim kluczem API. Inni klienci nie mogą z nich korzystać. Koszt zatwierdzenia i opublikowania to $10.
  • Szablony publiczne są ogólnodostępne. Zarobisz 5% od kosztów poniesionych przez każdego klienta. W tym trybie należy jednak pozostawić jakiś kontakt do siebie za pomocą którego klienci będą mogli poprosić o pomoc w razie kłopotów z Twoim szablonem. Koszt zatwierdzenia i opublikowania: $1.

Starannie rozpatrujemy każdą publikację. Aby pomyślnie aktywować tryb produkcyjny, należy spełnić pewne minimalne wymagania:

  • Żadnej działalności niezgodnej z prawem.
  • Szablony nie mogą stanowić duplikatu innego szablonu.
  • Należy stosować neutralne nazwy szablonów, pozbawione odniesień do konkretnych usług i stron.
  • Nie należy publikować pustych lub testowych szablonów.
  • Zgłaszając publikację należy dołączyć przykładowy adres strony i wartości zmiennych, abyśmy mogli pomyślnie przetestować szablon.

Żądania API

Żądanie API utworzenia zadania dla powyższego szablonu AntiGate może być tak proste, jak poniższy przykład:

CURL
          curl -i -H "Accept: application/json" \
     -H "Content-Type: application/json" \
     -X POST -d '{
    "clientKey":"YOUR_API_KEY",
    "task":
        {
            "type":"AntiGateTask",
            "websiteURL":"https://anti-captcha.com/tutorials/v2-textarea",
            "templateName":"Demo sign-in at anti-captcha.com #123456",
            "variables": {
                "login":"some value",
                "password":"some value"
            }
        }
}' https://api.anti-captcha.com/createTask
        

Wymaga to przekazania parametrów "templateName" i "variables" do uzupełnienia w szablonie.

Korzystanie z otrzymanych wyników

Pomyślnie wykonane zadania AntiGate zwracają rozwiązanie, na które składają się "cookies", "localStorage", "fingerprint" oraz "url". Zadaniem Twojej aplikacji jest przejście na stronę "url" stosując w żądaniu "cookies" i uzupełnienie przynajmniej wartości "fingerprint.self.navigator.userAgent" jako User-Agent przeglądarki. Bardziej złożone strony przechowują istotne dane w localStorage, co stanowi swego rodzaju unowocześnioną wersję cookies. W tym przypadku musisz wstawić te dane do strony zanim uruchomi się jakikolwiek kod Javascript. Można tego dokonać w środowisku deweloperskim jak Puppeteer, co jednak wychodzi poza ramy tego artykułu.

Tworzenie własnych szablonów

Postępuj zgodnie z powyższymi etapami, ale nie wgrywaj przykładowego szablonu. Uzupełnij starannie wszystkie szczegóły i dodaj etapy. Zwróć uwagę, że wszystkie etapy wykonują się sekwencyjnie. Wtyczka wstrzyma wykonywanie kolejnego kroku zanim nie zostanie ukończony bieżący. W każdej chwili możesz zapisać swój szablon i przetestować go we wtyczce przeglądarki pracownika.

Koszty

Na dzień dzisiejszy koszt to $2 za 1000 zadań. Dodatkowo, każda kolejna sekunda wykonywania zadania kosztuje 1/60 ceny zadania. Przykładowo: zadanie kosztuje $0.002, a pracownik rozwiązuje je 20 sekund.
Ostateczny koszt wyniesie $0.00266 = 0.002 + (0.002 / 60 * 20) .

Konkluzja

W momencie pisania niniejszego tekstu (grudzień 2021) usługa jest jeszcze w fazie "beta". Zachęcamy do przesyłania uwag i sugestii odnośnie AntiGate za pośrednictwem ticketów wsparcia klienta.