Menu

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

Nowa wersja poradnika na temat zadań Antigate w formie filmiku dostępna jest 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 typem 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ą mamy wejść. 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, możesz utworzyć zadanie z naszym API. Pracownik nawiguje na twoją stronę za pomocą naszej specjalnej wtyczki do przeglądarki i wykonuje ręcznie bądź automatycznie czynności scenariusza. Na koniec skryptu pobieramy wszelkie dane ich sesji przeglądarki, takie jak pliki cookies, wartości localStorage, odcisk palca przeglądarki i przekazują je z powrotem do twojej aplikacji. Teraz pozostaje jedynie odtworzenie sesji naszego pracownika dzięki pozyskanym danym. Dalsze działania przebiegną w taki sposób, jakby przed komputerem siedział prawdziwy człowiek. Niesamowite, 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 etapy 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 określonego 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 submit/prześlij".
Spójrzmy na przykład. Przejdź do Centrum deweloperów i utwórz darmowy szablon do testów. Nie martw się - nic nie zepsujesz!
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. Z chwilą publikacji twój szablon staje się dostępny w API pod tą nazwą.
  • Opis dla klientów. Szablony publiczne dostępne są w naszym katalogu szablonów.
  • Opis dla pracowników. Ten tekst pracownicy zobaczą u góry strony.
    Przykład interfejsu pracowników
  • Zmienne. Jest to lista nazw zmiennych, które można dodać i odwoływać się do nich zamiast wpisywać wartości na stałe. W tym przykładzie mamy dwie zmienne, "login" i "password". Są wykorzystywane w etapach 1 i 2 w celu uzupełnienia pokazowego formularza logowania. Dzięki temu, wartości można przekazywać za pośrednictwem API zamiast wpisywać nazwę użytkownika i hasło na stałe w szablon.
    Zmienne użyte w etapach 1 i 2
  • . Tu można edytować i zmieniać kolejność etapó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órego treść jest tu zapisana 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 póki co niedostępny w API i istnieje tylko dla ciebie. Możesz jednak przetestować nowoutworzony szablon, jakbyś to ty był swoim pracownikiem.

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 wciśnij przycisk "test" na swojej karcie szablonu.
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 "password" losowymi wartościami i naciśnij przycisk "Launch 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 szablonie. Zakładka zamyka się automatycznie, a migawka sesji pojawi się w polu z wynikami.
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 korzystającego z szablonu. 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 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ę do oceny, należy dołączyć przykładowy adres strony i wartości zmiennych, abyśmy mogli pomyślnie przetestować wszystkie etapy zawarte w szablonie.

Żą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 ukończone zadania AntiGate zwracają rozwiązanie, w którym zawarte są "cookies", "localStorage", "fingerprint" i "url". Oprogramowanie musi nawigować do adresu "url" przy użyciu plików "cookie" w tym żądaniu, i 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 cookies. 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 developerskim, takim, jak Puppeteer. Ten temat prawdopodobnie zasługuje na osobny 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) .