Scarnox · Blog

Captcha-sitekey vinden op elke pagina (4 manieren)

Elke captchaoplossing begint met de sitekey: de publieke ID die de site bij de captcha-aanbieder heeft geregistreerd. De browser kan hem zien, dus jij kunt hem ook zien. Voor PopularCaptcha is de sitekey een UUID, zoals a5f74b19-9e45-40e0-b45d-47ff91b7a6c2. Andere aanbieders gebruiken andere formaten. Google reCAPTCHA-sleutels beginnen bijvoorbeeld met 6L. Hier zijn vier plekken om hem te vinden, van makkelijkst tot betrouwbaarst.

Scarnox lost vandaag PopularCaptcha op. Het opzoeken van de sitekey werkt hetzelfde voor elke captcha, dus deze methoden helpen ook wanneer je voor een ander type plant. Andere typen, zoals reCAPTCHA en Cloudflare Turnstile, komen binnenkort.

1. Het attribuut data-sitekey

Open DevTools (F12), ga naar Elements, druk op Ctrl+F en zoek naar data-sitekey. De meeste widgets zetten de sleutel in zo'n attribuut:

<div class="h-captcha" data-sitekey="a5f74b19-9e45-40e0-b45d-47ff91b7a6c2"></div>

Als je hem hier vindt, ben je klaar. Kopieer de waarde en ga door naar de oplossing.

2. Het netwerktabblad

Als de widget door JavaScript wordt gerenderd, verschijnt het attribuut misschien nooit in de HTML. Open Network, laad de pagina opnieuw, en filter op het configuratieverzoek van de widget. Voor PopularCaptcha heet dat verzoek meestal checksiteconfig. De sitekey is een van de queryparameters:

.../checksiteconfig?v=...&host=example.com&sitekey=a5f74b19-...

Filteren op het woord sitekey in de request-URL werkt ook als de naam op de site die je test anders is.

3. De iframe-URL

De uitdaging zelf is een iframe dat door de captcha-aanbieder wordt geserveerd. De src bevat de sitekey als parameter. Klik met de rechtermuisknop op de widget, kies Inspect, en lees de waarde uit het adres van het iframe. Dit is de betrouwbaarste methode wanneer de pagina het attribuut voor het hoofddocument verbergt.

4. Onzichtbare widgets

Een onzichtbare widget heeft geen vinkje. De site roept de functie render() of execute() van de widget aan vanuit zijn eigen code, en de sitekey wordt als argument meegegeven. Zoek in het JavaScript van de pagina ernaar: open het paneel Sources en druk op Ctrl+Shift+F, en zoek daarna naar sitekey. Onzichtbare sitekeys hebben de onzichtbare vlag nodig wanneer je ze oplost. Zie onzichtbare captcha's oplossen.

De sitekey uit een script lezen

Als het attribuut in de ruwe HTML staat, kan een script hem lezen zonder browser:

import re
import requests

html = requests.get("https://example.com/signup", timeout=30).text
m = re.search(r'data-sitekey="([^"]+)"', html)
print(m.group(1) if m else "no data-sitekey in the raw HTML")

Als dit niets afdrukt, wordt de widget door JavaScript gerenderd. Gebruik dan een echte browser, zoals bij de methode van het netwerktabblad hierboven. Haal alleen pagina's op die je mag automatiseren, en houd je verzoeksnelheid laag.

Welke URL hoort erbij?

Stuur de URL van de pagina waar de widget op staat als site_url. De host is het belangrijkst, dus https://example.com/signup is de waarde die je gebruikt voor een aanmeldwidget. Een volledig verzoek voor PopularCaptcha ziet er zo uit:

{
  "captcha_type": "PopularCaptchaTaskProxyless",
  "site_key": "a5f74b19-9e45-40e0-b45d-47ff91b7a6c2",
  "site_url": "https://example.com/signup"
}

Stuur het naar https://api.scarnox.com/api/tasks/create met je sleutel in de header Authorization: Bearer. De aanroep blokkeert totdat het token klaar is, dus er is geen tweede verzoek nodig om het resultaat te controleren.

Veelvoorkomende problemen

Controleren of je de juiste sitekey hebt

Een pagina kan meer dan één sitekey bevatten. Analysewidgets, reactieformulieren en nieuwsbriefvakjes voegen soms hun eigen toe. Bevestig voordat je oplost dat de sitekey bij het formulier hoort dat je automatiseert. Drie snelle controles helpen:

Sleutels kunnen ook veranderen wanneer een site opnieuw wordt uitgerold. Als een sleutel die gisteren werkte geen geaccepteerde tokens meer oplevert, lees de pagina dan opnieuw voordat je iets anders verandert. Een nieuwe lezing kost niets, en die sluit de meest voorkomende oorzaak van een plotselinge storing uit.

Pagina's die de widget pas na een klik laden, hebben nog één stap extra nodig. Open de pagina, voer de klik uit die de widget toont, en lees pas daarna de sitekey. Als je de pagina vóór de klik leest, krijg je niets terug. Dat lijkt op een ontbrekende widget, maar het is eigenlijk een timingprobleem. Wacht tot een element dat aan [data-sitekey] voldoet verschijnt, in plaats van voor een vaste tijd te slapen.

Volgende stappen

Begin met gratis proefcredit, zonder creditcard: maak een account aan en test je eerste sitekey.