Captcha omzeilen voor legitieme automatisering en testen
Een captcha legitiem omzeilen betekent dat je eigen geautomatiseerde werk langs een uitdaging helpt zonder de regels van de site te breken of zijn gebruikers aan te vallen. In de praktijk gaat het om vier gevallen: het automatiseren van een workflow die je bezit, het testen van je eigen site, het bouwen van toegankelijke tooling, en het verzamelen van publieke data in een verantwoord tempo. De snelste eerlijke route is meestal om de captcha helemaal niet te activeren. Als je hem niet kunt vermijden, kan een solver-API zoals Scarnox het token teruggeven dat de pagina verwacht.
Deze gids zet de aanpakken op de volgorde waarin je ze moet proberen, en markeert de grenzen die je niet moet overschrijden.
Begin met de vraag waarom de captcha verscheen
Captchas zijn een signaal. De site besloot dat een verzoek geautomatiseerd of riskant leek. Voordat je probeert de uitdaging te passeren, kijk je wat de oorzaak was:
- Aanvraagsnelheid. Veel captchas verschijnen pas na een uitbarsting van verzoeken vanaf één adres.
- Ontbrekende sessiestatus. Een bezoeker die zonder cookies, geschiedenis en login komt, lijkt op een scraper.
- Browsersignalen. Headless browsers en standaard automatiseringsinstellingen worden vaak gemarkeerd. De gids over headless-browserdetectie legt de gebruikelijke uit.
- Netwerkreputatie. Datacenteradressen worden strenger bekeken dan thuisverbindingen.
Het oplossen van de oorzaak haalt de captcha vaak helemaal weg, wat beter is dan hem bij elk verzoek oplossen.
Probeer de aanpakken die de uitdaging vermijden
- Gebruik een officiële API als die bestaat. Veel sites publiceren data via een API met eigen sleutels en limieten. Die route is sneller, stabieler en duidelijk toegestaan.
- Vertraag en spreid verzoeken. Voeg vertragingen toe tussen verzoeken, beperk gelijktijdigheid en neem gas terug wanneer je een waarschuwing krijgt. Een gelijkmatig tempo van een paar verzoeken per minuut ziet er voor een site heel anders uit dan een uitbarsting van honderden.
- Behoud sessies. Hergebruik cookies en een consistent browserprofiel gedurende een sessie, in plaats van bij elke pagina opnieuw te beginnen. De gids over browser-fingerprinting legt uit waarom dat ertoe doet.
- Controleer robots.txt en de servicevoorwaarden voordat je begint, niet nadat je bent geblokkeerd. Respecteer wat de site vraagt.
Gebruik testsleutels en testomgevingen
Als de captcha je eigen stagingomgeving blokkeert, richt je tests dan niet op productie om hem te omzeilen. De meeste captcha-leveranciers, waaronder Google en Cloudflare, publiceren testsleutels voor ontwikkeling. Deze sleutels leveren een geldig token zonder echte uitdaging, en ze zijn het juiste hulpmiddel voor geautomatiseerde tests. Je kunt je team ook vragen de captcha op de stagingserver uit te zetten. De gids over captcha in geautomatiseerde tests loopt deze opzet stap voor stap door.
Los de captcha op via een API wanneer hij voor legitiem werk staat
Sommige captchas verschijnen nog steeds bij een legitieme klus, zelfs met een goed tempo. Een monitoringtaak die het portaal van je eigen leverancier controleert is een voorbeeld. In dat geval is een solver-API het passende hulpmiddel.
Scarnox is een captcha-solver-API. Vandaag is het enige live tasktype PopularCaptcha, zonder proxy. Je code stuurt de sitekey en de URL van de pagina, en ontvangt een token om met het formulier in te dienen:
import requests
r = requests.post(
"https://api.scarnox.com/api/tasks/create",
headers={"Authorization": "Bearer scarnox_YOURAPIKEY"},
json={
"captcha_type": "PopularCaptchaTaskProxyless",
"site_key": "10000000-ffff-ffff-ffff-000000000001",
"site_url": "https://example.com/login",
},
timeout=185,
)
data = r.json()
token = data["solution"]["token"] if data.get("errorId") == 0 else None
Het token verloopt na ongeveer twee minuten, dus dien het meteen in. Het voorbeeld van captcha oplossen met Python bevat het volledige voorbeeld. Andere captchatypen, waaronder reCAPTCHA, Cloudflare Turnstile en Arkose, komen binnenkort. Ga tot die tijd er niet vanuit dat een solver ze aankan.
Toegankelijkheid is ook een legitieme reden
Captchas vormen een barrière voor mensen die schermlezers gebruiken, van apparaat wisselen of een cognitieve of visuele beperking hebben. Als je toegankelijkheidstooling bouwt, of opkomt voor gebruikers die een uitdaging niet kunnen voltooien, is de juiste eerste stap de siteeigenaar vragen om een toegankelijk alternatief. Veel sites bieden er een. Een captcha automatiseren is geen vervanging voor dat gesprek.
Wat niet legitiem is
Sommige gebruiken van captcha-oplossing vallen buiten de grenzen, wat de reden ook is. Gebruik geen solvers of enige omzeiling voor:
- credential stuffing of een poging om in te loggen op accounts die niet van jou zijn;
- spamaanmeldingen, nepreviews of nepaccounts;
- het kopen van tickets, voorraad of beperkte artikelen vóór andere klanten;
- het aanvallen van loginformulieren, wachtwoordherstelstromen of snelheidslimieten van andermans dienst.
Deze gebruiken schaden echte mensen, breken de voorwaarden van sites en brengen je in ernstig juridisch risico. Scarnox ondersteunt ze niet, en deze gids behandelt ze niet.
Scrape verantwoord
Als je omzeiling bedoeld is om publieke data te verzamelen, houd dan deze punten in gedachten:
- Controleer robots.txt en de voorwaarden van de site. Een site die scrapen verbiedt, heeft je al verteld wat hij verwacht.
- Stel een redelijke snelheidslimiet in en neem gas terug bij fouten. Een kleine site overbelasten is echte schade.
- Verzamel geen persoonsgegevens die je niet nodig hebt. Persoonsgegevens vallen onder wetten zoals de AVG, en onzorgvuldig verzamelen brengt aansprakelijkheid met zich mee. De gids over of webscraping legaal is legt de belangrijkste overwegingen uit.
Samenvatting
Vermijd eerst de captcha door de oorzaak op te lossen. Gebruik testsleutels voor testen. Gebruik een solver-API voor legitieme klussen die toch een uitdaging tegenkomen, binnen de live tasktypes. Blijf weg van de gebruiken hierboven, en scrape in een tempo dat een site aankan.