Comment trouver la sitekey d'un captcha sur n'importe quelle page (4 méthodes)
Toute résolution de captcha commence par la sitekey : l'identifiant public que le site a enregistré auprès du fournisseur de captcha. Le navigateur la voit, vous pouvez donc la lire aussi. Pour PopularCaptcha, la sitekey est un UUID comme a5f74b19-9e45-40e0-b45d-47ff91b7a6c2. Les autres fournisseurs utilisent d'autres formats. Les clés Google reCAPTCHA, par exemple, commencent par 6L. Voici quatre endroits où la trouver, du plus simple au plus fiable.
Scarnox résout PopularCaptcha aujourd'hui. La recherche de la sitekey fonctionne de la même manière pour tout captcha, ces méthodes vous aident donc aussi lorsque vous préparez un autre type. Les autres types, comme reCAPTCHA et Cloudflare Turnstile, arrivent bientôt.
1. L'attribut data-sitekey
Ouvrez les outils de développement (F12), allez dans Éléments, appuyez sur Ctrl+F et cherchez data-sitekey. La plupart des widgets placent la clé dans un attribut de ce type :
<div class="h-captcha" data-sitekey="a5f74b19-9e45-40e0-b45d-47ff91b7a6c2"></div>
Si vous la trouvez ici, c'est terminé. Copiez la valeur et passez à la résolution.
2. L'onglet réseau
Si le widget est généré par JavaScript, l'attribut peut ne jamais apparaître dans le HTML. Ouvrez Réseau, rechargez la page, et filtrez sur la requête de configuration du widget. Pour PopularCaptcha, cette requête s'appelle généralement checksiteconfig. La sitekey est l'un de ses paramètres de requête :
.../checksiteconfig?v=...&host=example.com&sitekey=a5f74b19-...
Filtrer sur le mot sitekey dans l'URL de la requête fonctionne aussi si le nom diffère sur le site que vous testez.
3. L'URL de l'iframe
Le défi lui-même est un iframe servi par le fournisseur de captcha. Son src porte la sitekey en paramètre. Faites un clic droit sur le widget, choisissez Inspecter, et lisez la valeur dans l'adresse de l'iframe. C'est la méthode la plus fiable lorsque la page cache l'attribut dans le document principal.
4. Les widgets invisibles
Un widget invisible n'a pas de case à cocher. Le site appelle la fonction render() ou execute() du widget depuis son propre code, et la sitekey est passée en argument. Cherchez-la dans le JavaScript de la page : ouvrez le panneau Sources et appuyez sur Ctrl+Maj+F, puis cherchez sitekey. Les sitekeys invisibles nécessitent le drapeau invisible lorsque vous les résolvez. Voir résoudre les captchas invisibles.
Lire la sitekey depuis un script
Si l'attribut figure dans le HTML brut, un script peut le lire sans navigateur :
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")
Si cela n'affiche rien, le widget est généré par JavaScript. Utilisez alors un vrai navigateur, comme dans la méthode de l'onglet Réseau ci-dessus. Ne récupérez que les pages que vous êtes autorisé à automatiser, et gardez un faible rythme de requêtes.
Quelle URL lui associer ?
Envoyez l'URL de la page où se trouve le widget comme site_url. C'est l'hôte qui compte le plus, donc https://example.com/signup est la valeur à utiliser pour un widget d'inscription. Une requête complète pour PopularCaptcha ressemble à ceci :
{
"captcha_type": "PopularCaptchaTaskProxyless",
"site_key": "a5f74b19-9e45-40e0-b45d-47ff91b7a6c2",
"site_url": "https://example.com/signup"
}
Envoyez-la à https://api.scarnox.com/api/tasks/create avec votre clé dans l'en-tête Authorization: Bearer. L'appel bloque jusqu'à ce que le token soit prêt, il n'y a donc pas de seconde requête pour vérifier le résultat.
Problèmes courants
- Deux sitekeys sur une même page. Les sites incluent parfois un widget pour le formulaire de connexion et un autre pour l'inscription. Associez la clé au formulaire qui vous rejette réellement, et vérifiez lequel se trouve le plus près du bouton d'envoi.
- La clé change d'une visite à l'autre. Relisez-la à chaque exécution. Les clés sont normalement stables, mais une clé en cache venant d'un ancien déploiement peut cesser de fonctionner.
- La clé est trouvée, mais le token est rejeté. La sitekey est probablement correcte. Vérifiez ensuite la taille du widget et le réglage du proxy, en commençant par le guide du captcha invisible et la comparaison avec proxy.
Vérifier que vous avez la bonne sitekey
Une page peut contenir plusieurs sitekeys. Les widgets d'analyse, les formulaires de commentaires et les encarts d'abonnement à une newsletter en ajoutent parfois de leur côté. Avant de résoudre, assurez-vous que la sitekey appartient au formulaire que vous automatisez. Trois vérifications rapides aident :
- Repérez le bouton d'envoi du formulaire dans les outils de développement et remontez le DOM jusqu'à l'élément le plus proche qui contient un
data-sitekey. C'est le widget qui protège le formulaire. - Comparez la clé avec celle de l'URL de l'iframe. Si elles correspondent, vous avez la clé que le widget utilise réellement.
- Soumettez le formulaire à la main une fois avec un token résolu, si vous en avez le droit, et vérifiez que le site l'accepte.
Les clés peuvent aussi changer lorsqu'un site est redéployé. Si une clé qui fonctionnait hier ne produit plus de tokens acceptés, relisez la page avant de modifier quoi que ce soit d'autre. Une nouvelle lecture ne coûte rien, et elle écarte la cause la plus fréquente d'une panne soudaine.
Les pages qui ne chargent le widget qu'après un clic demandent une étape supplémentaire. Ouvrez la page, effectuez le clic qui affiche le widget, et seulement ensuite lisez la sitekey. Lire la page avant le clic ne renvoie rien, ce qui ressemble à un widget absent alors qu'il s'agit en réalité d'un problème de timing. Attendez qu'un élément correspondant à [data-sitekey] apparaisse plutôt que de dormir un temps fixe.
Étapes suivantes
- Comment résoudre un PopularCaptcha en Python
- Résoudre un PopularCaptcha avec Playwright et Puppeteer
- Les types de captcha expliqués
- Essai gratuit du solveur de captcha
Démarrez avec un crédit d'essai gratuit, sans carte bancaire : créez un compte et testez votre première sitekey.