Menu

Hur du förbigår alla typer av captchor med AntiGate-uppdrag

En ny videoversion av AntiGate tasks tutorial är tillgänglig här.

Efter ett par år av efterforskning och utveckling introducerar vi nu en universallösning för att hjälpa dina robotar förbigå captchor skapade av människor. Vi kallar dem "AntiGate". De är scenariomallar som vår mänskliga arbetsstyrka använder för att utföra specifika uppgifter.

Vid en viss tidpunkt upptäcker din app ett automatiserat "gateway"-skydd med någon ny typ av captcha, obfuskerat webbläsarskript eller vad det nu än kan vara. Det är då våra AntiGate-uppdrag kommer in. Du ger en av våra arbetare i uppdrag att bygga en riktig mänsklig webbläsarsession.
  • Först väljer du en mall. Du kan välja en redan existerande eller skapa din egen. En mall är en uppsättning instruktioner i steg-för-steg-form som arbetare utför.
  • Ange sedan den övriga data mallen kräver, som värden till formulär att fylla i, inputfältens CSS-selektorer och webbadressen det gäller. Vi återkommer till mallar om en liten stund.
  • För det andra, och frivilligt – proxys. Du behöver dem om webbplatsen kopplar ihop varje sessionscookie med en specifik ip-adress.
Med dessa tre skapar du en uppgift med vårt API. En medarbetare navigerar till din webbplats med vårt speciella webbläsarplugin och utför alla scenariostegen manuellt eller automatiskt. Och i slutet av skriptet hämtar vi all deras webbläsarsessionsinformation som cookies, lokala lagringsvärden, webbläsarens fingeravtryck och överför den tillbaka till din app. Allt som återstår är att du använder dessa data för att återställa vår arbetarsession och fortsätta verksamheten som om det vore en mänsklig användare. Hur fantastiskt är inte det? :)

Vad är AntiGate-mallar?

En AntiGate-mall definierar ett specifikt scenario som våra arbetare ska utföra. Mallar består av steg, som alla utförs i den ordning de anges. När ett steg är genomfört går arbetaren vidare till nästa. När alla steg är genomförda är uppdraget slutfört och en snapshot av arbetarens session skickas tillbaka till din app.

Vilka typer av steg finns det?
  • Fylla i formulärfält automatiskt eller manuellt.
  • Vänta på att en viss text ska dyka upp på (eller försvinna från) sidan.
  • Vänta på att ett visst DOM-element, definierat med CSS, ska dyka upp på (eller försvinna från) sidan.
  • Vänta på att ett visst ord ska dyka upp i (eller försvinna från) arbetarens aktuella URL.
I mallens textfält "beskrivning för arbetare" kan du beskriva andra steg som du förväntar dig från arbetaren. Till exempel: "Lös captchan och tryck på skicka-knappen".
Låt oss kika på ett exempel. Gå till Developers Center och skapa en mall för att testa. Oroa dig inte, inget kommer gå sönder!
Klicka för att lägga till mallen
Klicka för att hämta ett exempel
Lägg märke till delen med steg
Du har hämtat ett demoexempel. Du kan spara det på ditt konto och testa det på egen hand senare. Låt oss bekanta oss med mallens alla olika egenskaper:
  • Mallens namn. När den har sparats kan den inte ändras. När du publicerar den blir din mall tillgänglig i API:et med detta namn.
  • Beskrivning för kunder. Publika mallar finns tillgänliga i vårt mallbibliotek.
  • Beskrivning för arbetstagare. Detta är den text som våra medarbetare ser överst på sidan.
    Exempel på arbetarnas vy
  • Variabler. Detta är en lista med variabelnamn som du kan lägga till för att använda i stegen istället för permanenta värden. I det här exemplet har vi 2 variabler, "login" och "password". Dessa 2 används i steg 1 och 2 för att fylla i demonstrationens inloggningsformulär. På så sätt kan du tillhandahålla dessa värden via API istället för att hårdkoda en permanent inloggning och lösenord i mallen.
    Variabler som används i steg 1 och 2.
  • Arbetstagarens steg. Här kan du redigera och ändra ordningen på scenariots steg. I vårt exempel gör vi följande:
    1. Fyll i textfältet med CSS-selektorn "#login" automatiskt. Värdet för textfältet definieras av variabeln "login".
    2. Fyll i textfältet med CSS-selektorn "#password" automatiskt. Värdet för textfältet definieras av variabeln "password".
    3. Vänta tills en kontrolltext dyker upp på sidan. Den är permanent satt till värdet "Test passed with login".

Du kan nu spara mallen och den kommer att synas i ditt Developers Center. Lägg märke till att den har "sandbox"-status, vilket innebär att den bara finns tillgänglig för dig och är inte tillgänglig i API:t. Härifrån kan du prova att testa din nyskapade mall som om du var din egna arbetare.

Testa mallar

Du måste då använda Chrome som webbläsare. Vi rekommenderar också att du skapar en ny användarprofil i webbläsaren eftersom vi måste installera vårt tillägg, som har tillgång till profilens cookies.
Exempel på arbetarnas vy
På mallens kort, tryck sedan på knappen "test".
Följ instruktionerna och ladda ner plugin-programmet för din plattform. Ladda sedan om sidan för att den ska träda i kraft, fyll i variablerna "login" och "password" med några slumpmässiga värden och tryck på knappen "Launch Test". En ny sida bör öppnas som kommer att se ut så här:

I närheten av adressfältet syns ett blått fält som tillägget har lagt till på toppen av målsidan. Det är på det sättet arbetarna får information om sina uppdrag och kontrollerar uppdragets genomförande.

Lägg också märke till att fälten för användarnamn och lösenord är dolda när de fylls med variabler. Det är medvetet. Även om arbetare har full tillgång till uppdragsdatan via utvecklarverktyget så bryr sig 99,99 % av dem inte om vad som sker i bakgrunden.
När Recaptchan löses, tryck på "Sign In"-knappen. Som mallens sista steg skickas "WAIT_CONTROL_TEXT_PRESENT". Tillägget söker efter kontrollfrasen "Test passed with login", som är permanent definierad i mallen. Fliken stängs automatiskt och en snapshot av sessionen visas i resultatfältet.
Exempel på resultat

Samma snapshotdata kan hämtas via API. Men för att göra din mall tillgänglig i API:t behöver vi först publicera den.

Publicera mallar

Du har två val när det kommer till att publicera mallar: antingen göra dem privata eller publika.
  • Privata mallar kan endast användas med din API-nyckel. Andra kunder kan inte använda dem. Kostnad för att granska och publicera: 1 USD.
  • Publika mallar är tillgängliga för alla. Du tjänar 5 % av vad varje kund spenderar med denna mall. Du måste lämna några kontaktuppgifter så att våra kunder kan kontakta dig om det uppstår något fel med din mall och de behöver hjälp. Kostnad för att granska och publicera: 1 USD.
Vi granskar alla mallar noga. Du måste följa några grundläggande krav för att kunna byta till produktionsläget:
  • Ingen olaglig aktivitet av något slag.
  • Mallar får inte vara duplikat av redan existerande mallar.
  • Ladda inte upp dummy- eller testmallar.
  • Skicka med en exempel-URL och variabelvärden för granskning. Vi genomför ett test och alla steg ska kunna genomföras utan problem.

API-förfrågningar

En API-förfrågan om att skapa ett uppdrag för ovan nämnda AntiGate-mall kan vara så enkel som följande:

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

Det vill säga att för att fylla i mallen skickar du med parametrarna "templateName" och "variables".

Använda uppdragsresultat

AntiGate-uppdrag som genomförs utan problem svarar med en lösning som inkluderar "cookies", "localStorage", "fingerprint" och "url". Vad din programvara behöver göra är att navigera till "url" med hjälp av "cookies" i denna begäran, och åtminstone använda värdet "fingerprint.self.navigator.userAgent" för webbläsarens User-Agent. Mer komplexa webbplatser lagrar viktiga data i localStorage, vilket är en slags modern version av cookies. I det här fallet måste du injicera dessa data på sidan innan du faktiskt kör några Javascripts. Detta kan göras i en utvecklingsmiljö som Puppeteer. Detta ämne förtjänar förmodligen en annan artikel.

Skapa dina egna mallar

Följ helt enkelt stegen ovan utan att ladda exempelmallen. Fyll i alla detaljer noggrant och lägg till stegen. Tänk på att stegen genomförs i den ordning du anger dem. Tillägget tillåter inte utförandet av nästa steg innan det pågående är slutfört. Du kan när som helst spara mallen och testa den med arbetarnas webbläsartillägg.

Priser

För tillfället har vi satt priset till 2 USD per 1 000 uppdrag. Varje sekund uppdraget tar att utföra kostar sedan 1/60 av uppdragspriset. Exempel: uppdraget kostar 0,002 USD och arbetaren lade ner 20 sekunder på att lösa det.
Den totala kostnaden blir då 0,00266 = 0,002 + (0,002 / 60 * 20).