Scarnox · Blog

Proxy versus proxyless captcha oplossen: welk tasktype heb je nodig?

Scarnox biedt PopularCaptcha in twee varianten: proxyless, waarbij Scarnox de captcha oplost via zijn eigen netwerk, en een proxyvariant, waarbij je de proxy meestuurt die je bot gebruikt. Beide geven een token terug in dezelfde antwoordvorm, en beide zijn gratis wanneer een solve mislukt. Het enige verschil in het verzoek is de proxy.

Proxyless is het juiste startpunt voor de meeste sites. Stuur alleen je eigen proxy mee wanneer de site het token aan een IP-adres bindt.

De twee tasktypen

TasktypeWat je stuurt
PopularCaptchaTaskProxylesssitekey en paginaurl
PopularCaptchaTask (proxyvariant)sitekey, paginaurl en je proxy

Beide zijn PopularCaptcha-taken. De rest van het verzoek, het antwoord en de tokenafhandeling zijn gelijk.

Begin met proxyless

Proxyless-solves draaien op het eigen netwerk van Scarnox. De integratie is de eenvoudigste die je kunt schrijven, en voor de meeste sites werkt het token ongeacht welk IP-adres het later indient. Weet je niet welke je nodig hebt, begin dan hier:

{
  "captcha_type": "PopularCaptchaTaskProxyless",
  "site_key": "10000000-ffff-ffff-ffff-000000000001",
  "site_url": "https://example.com/signup"
}

Stuur een proxy wanneer het token aan een IP is gebonden

Sommige sites controleren of het IP-adres dat de captcha heeft opgelost hetzelfde is als het IP-adres dat het formulier verzendt. Het symptoom is duidelijk: tokens komen zonder fouten terug, maar de site weigert ze elke keer. De oplossing is de solve te doen via dezelfde proxy die je bot voor de rest van de sessie gebruikt:

{
  "captcha_type": "PopularCaptchaTask",
  "site_key": "10000000-ffff-ffff-ffff-000000000001",
  "site_url": "https://example.com/signup",
  "proxy": "http://user:pass@203.0.113.10:8080"
}

Het proxyformaat is http://user:pass@host:port. Gebruik dezelfde proxy voor de solve en voor het verzenden, en houd hem vast voor de hele sessie. Als je de proxy tussen de solve en het verzenden wisselt, komt het IP-mismatchprobleem terug.

Hoe je beslist

Werk deze vragen in volgorde af:

  1. Werkt het token als je het vanaf een andere machine indient? Dan is proxyless de juiste keuze.
  2. Weigert de site tokens alleen wanneer het indienende IP afwijkt van het solvende IP? Dan stuur je de proxy mee.
  3. Gebruikt de site een sessiecookie of apparaatcontrole die aan één IP is gebonden? Dan stuur je de proxy mee en houd je hetzelfde IP voor de hele sessie.

Test beide op de gratis proefversie voordat je kiest. Maak een account aan en begin met gratis proefkrediet, zonder creditcard. Voer daarna dezelfde flow één keer per type uit.

Als je proxy niet werkt

Een mislukte solve is gratis. Als de proxy dood is of door het doel wordt geblokkeerd, mislukt de solve en betaal je er niets voor. Test de proxy zelf voor de run, controleer het formaat, en zorg dat het doel het adresbereik niet blokkeert. Een proxy die voor een browser werkt maar de solve laat mislukken, heeft meestal een formaatprobleem.

Houd proxygegevens uit logs

Een proxyadres met wachtwoord is een geheim. Bewaar het in een omgevingsvariabele of een secretmanager. Print het niet in logs, commit het niet en plak het niet in bugrapporten. Als je het solveverzoek voor debugging logt, verwijder dan eerst het veld proxy.

Een proxy kiezen voor de variant

De solve werkt met elke proxy die je meestuurt, maar het token is alleen nuttig als hetzelfde IP het formulier verstuurt. Gebruik een residentieel of vast adres dat je beheert voor de hele sessie, niet een pool die bij elk request roteert. Sites die tokens aan IP-adressen binden, binden meestal ook de sessie, dus een roterende pool breekt de flow op twee manieren.

En de snelheid?

Beide varianten geven een token terug van één blokkerend verzoek, zonder pollinglus. De timeout is hetzelfde: ongeveer 185 seconden. Kies de variant op basis van de IP-vraag, niet op snelheid.

Sessies en proxies in de praktijk

Gebruik dezelfde proxy van het eerste verzoek tot het laatste in een sessie. Een gebruikelijke flow laadt de aanmeldpagina, lost de captcha op en verstuurt het formulier. Als het laden van de pagina via het ene adres loopt en de solve via het andere, kan een site die aan IP-adressen bindt het token weigeren, ook al ziet al het andere er goed uit.

Houd één proxyinstelling in je code en geef die door aan elke stap die de site raakt. Als andere delen van de taak proxies roteren voor scraping, geef de captchaflow dan een eigen vaste proxy. Het mengen van de twee is een van de meest voorkomende redenen waarom een token dat in tests werkte, in productie faalt.

Zet het veld proxy alleen op de variant die een proxy gebruikt. Een proxy meesturen bij het proxyless tasktype verbetert de solve niet, en het maakt het moeilijker om in de logs te zien welke modus een run gebruikte.

De logs lezen voor het juiste antwoord

Weet je niet welke modus een site nodig heeft, draai dan beide op dezelfde pagina en vergelijk. Log of elk token is geaccepteerd, samen met het tasktype en of er een proxy is meegestuurd. Een site die proxyless-tokens consequent accepteert, heeft de proxyvariant niet nodig. Een site die ze alleen van bepaalde runs weigert, wijst op een IP-controle. Laat de logs beslissen, niet een gok.

Volgende stappen

Start met gratis proefkrediet, zonder creditcard: maak een account aan en probeer beide tasktypes op één pagina.