Menu

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

Nowa wersja wideo samouczka zadań AntiGate jest dostępna tutaj.

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 elementy, tworzysz zadanie za pomocą naszego API. Pracownik przechodzi do Twojej witryny za pomocą naszej specjalnej wtyczki do przeglądarki i wykonuje wszystkie kroki scenariusza ręcznie lub automatycznie. Na końcu skryptu pobieramy wszystkie informacje o sesji przeglądarki, takie jak pliki cookie, wartości localStorage, odcisk palca przeglądarki, i przesyłamy je z powrotem do aplikacji. Pozostaje tylko użyć tych danych, aby przywrócić sesję pracownika i kontynuować operacje tak, jakby był to ludzki użytkownik. Niesamowite :)

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. Po zapisaniu nie można go zmodyfikować. Po opublikowaniu szablon będzie dostępny w interfejsie API pod tą nazwą.
  • Opis dla klientów. Ogólnodostępne szablony można znaleźć w naszym katalogu szablonów.
  • Opis dla pracowników. Jest to tekst, który nasi pracownicy widzą u góry strony.
    Przykład interfejsu pracowników
  • Zmienne. Jest to lista nazw zmiennych, które można dodać do użycia w krokach zamiast stałych wartości. W tym przykładzie mamy 2 zmienne, "login" i "hasło". Te 2 są używane w krokach 1 i 2 do wypełnienia demonstracyjnego formularza logowania. W ten sposób można podać te wartości za pośrednictwem interfejsu API zamiast zakodować na stałe login i hasło w szablonie.
    Zmienne użyte w etapach 1 i 2
  • Kroki pracownika. W tym miejscu można edytować i zmieniać kolejność kroków scenariusza. W naszym przykładzie wykonujemy następujące czynności:
    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.
Przykład interfejsu pracowników
Następnie, na swojej karcie szablonu wciśnij przycisk "test".
Postępuj zgodnie z instrukcjami i pobierz wtyczkę dla swojej platformy. Następnie przeładuj stronę, aby zaczęła działać, wypełnij zmienne "login" i "hasło" losowymi wartościami i naciśnij przycisk "Uruchom test". Powinna otworzyć się nowa strona, która będzie wyglądać następująco:

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 $1.
  • 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.
  • 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 -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/demo/?page=recaptcha_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". Oprogramowanie musi nawigować do adresu "url" przy użyciu plików "cookie" w tym żądaniu, a przynajmniej używać wartości "fingerprint.self.navigator.userAgent" jako User-Agent przeglądarki. Bardziej złożone strony internetowe przechowują ważne dane w localStorage, który jest rodzajem nowoczesnej wersji plików cookie. W takim przypadku konieczne będzie wstrzyknięcie tych danych na stronę przed faktycznym uruchomieniem jakichkolwiek skryptów Javascript. Można to zrobić w środowisku programistycznym, takim jak Puppeteer. Ten temat prawdopodobnie zasługuje na kolejny artykuł.

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) .