Dokumentationsmenyn

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

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 kan du skapa ett uppdrag med vårt API. En arbetare går till till webbplatsen med vårt särskilda webbläsartillägg och utför scenariots alla steg manuellt eller automatiskt. När skriptet är slutfört hämtar vi all webbläsarinformation som cookies, localStorage-värden och webbläsarens fingeravtryck och skickar det vidare till din app. Allt som återstår att göra för din del är att använda datan för att återskapa vår arbetares session och fortsätta använda webbplatsen precis som om det var en mänsklig användare. Hur coolt ä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 det väl är sparat kan det inte ändras. När du publicerar den finns mallen tillgänglig i API:t under detta namn.
  • Beskrivning för kunder. Publika mallar finns tillgänliga i vårt mallbibliotek.
  • Beskrivning för arbetare. Detta är den text våra arbetare ser längst upp på sidan.
    Exempel på arbetarnas vy
  • Variabler. Det här är en lista med namn på variabler som du kan lägga till i stegen i stället för att använda permanenta värden. I det här exemplet har vi två variabler: "login" och "password". Dessa två används i steg 1 och 2 för att fylla i exempelformuläret för inloggning. På så sätt kan du skicka dessa värden via API:t i stället för att hårdkoda inloggningsuppgifterna i mallen.
    Variabler som används i steg 1 och 2.
  • Arbetarens steg. Här kan du ändra stegen samt dess ordning i scenariot. 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.

På mallens kort, tryck sedan på knappen "test".

Följ instruktionerna och ladda ner tillägget för din plattform. Ladda sedan om sidan för att genomföra ändringarna, fyll i variablerna för "login" och "password" med vad som helst och tryck sedan på "Launch Test"-knappen. En ny sida bör då öppnas som ser 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
          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
        

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". Allt din mjukvara behöver göra är att gå till till "url" med hjälp av "cookies" och åtminstone använda "fingerprint.self.navigator.userAgent"-värdet som webbläsarens User-Agent. Mer komplicerade webbplatser lagrar viktig data i localStorage som är ett slags modern version av cookies. I det fallet måste du injicera den här datan på sidan innan du kör något Javascript på riktigt. Det går att göra i utvecklarmiljöer som Puppeteer. Ämnet förtjänar troligen 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).

Sammanfattning

I skrivande stund, december 2021, är funktionen fortfarande i betaläge. Lämna gärna kommentarer eller förslag om AntiGate-uppdrag i ett supportärende.