Guides
Trouver les paramètres reCAPTCHA
Cette page a été traduite automatiquement à partir de la version chinoise et peut contenir des erreurs. La version chinoise fait foi.
Pour créer une tâche reCAPTCHA, vous avez besoin de websiteURL (l’adresse de la page où s’affiche le captcha) et de websiteKey (la clé du site) ; v3 requiert aussi pageAction. Si vous simulez la soumission avec Selenium ou un outil similaire, il faut en plus connaître la fonction de rappel. Tout cela se trouve dans les outils de développement du navigateur (F12).
Le plus rapide : un script de recherche automatique
Section intitulée « Le plus rapide : un script de recherche automatique »Ouvrez la page où s’affiche le captcha, appuyez sur F12 pour ouvrir la console (Console), puis collez et exécutez ce script :
// Paste into the browser DevTools console on a page with reCAPTCHA, then run findRecaptchaClients().// Lists every reCAPTCHA on the page: version (V2/V3), sitekey, page URL and the callback function.function findRecaptchaClients() { if (typeof ___grecaptcha_cfg === 'undefined') return []; return Object.entries(___grecaptcha_cfg.clients).map(([cid, client]) => { const data = { id: cid, version: cid >= 10000 ? 'V3' : 'V2' }; const objects = Object.entries(client).filter(([, value]) => value && typeof value === 'object'); objects.forEach(([toplevelKey, toplevel]) => { const found = Object.entries(toplevel).find( ([, value]) => value && typeof value === 'object' && 'sitekey' in value && 'size' in value, ); if (toplevel instanceof HTMLElement && toplevel.tagName === 'DIV') data.pageurl = toplevel.baseURI; if (found) { const [sublevelKey, sublevel] = found; data.sitekey = sublevel.sitekey; const callbackKey = data.version === 'V2' ? 'callback' : 'promise-callback'; const callback = sublevel[callbackKey]; if (!callback) { data.callback = null; data.function = null; } else { data.function = callback; const keys = [cid, toplevelKey, sublevelKey, callbackKey].map((key) => `['${key}']`).join(''); data.callback = `___grecaptcha_cfg.clients${keys}`; } } }); return data; });}
findRecaptchaClients();Dans le résultat, sitekey correspond à websiteKey, pageurl à websiteURL, version indique v2 ou v3, et function et callback désignent la fonction de rappel :
[ { "id": "0", "version": "V2", "sitekey": "6Le-wvkSAAAAAPBMRTvw0Q4Muexq9bi0DJwx_mJ-", "function": "onSuccess", "callback": "___grecaptcha_cfg.clients['0']['l']['l']['callback']", "pageurl": "https://www.google.com/recaptcha/api2/demo" }]Un tableau vide signifie que reCAPTCHA n’est pas encore chargé sur la page ; relancez le script une fois le captcha affiché.
websiteKey et websiteURL
Section intitulée « websiteKey et websiteURL »Dans l’onglet Network, recherchez anchor et repérez une requête du type :
https://www.google.com/recaptcha/api2/anchor?ar=1&k=6LfW6wATAAAAAHLqO2pb8bDBahxlMxNdo9g947u9&co=...&hl=en&size=normal- La valeur après
k=est lewebsiteKey. - Pour
websiteURL, indiquez l’adresse complète de la page où s’affiche le captcha (c’est en général leRefererde cette requête).
Vous pouvez aussi rechercher data-sitekey dans le code source de la page.
pageAction (v3)
Section intitulée « pageAction (v3) »pageAction est la valeur de action que la page transmet dans grecaptcha.execute(clé du site, {action: '...'}) ; elle doit être identique à celle de la page.
Méthode 1 : rechercher dans le code source. Dans l’onglet Sources des outils de développement, faites un clic droit puis choisissez « Search in all files ». Pour v3 standard, recherchez .execute( ; pour v3 Enterprise, recherchez .enterprise.execute, puis lisez la valeur de action qui suit :
grecaptcha.ready(function () { grecaptcha.execute('6LdpS-gUAAAAAL3Qr2yP7rkrQjkKBVvEY_48JS5l', { action: 'login' }).then(function (token) { // ... });});Ici, pageAction vaut login.
Méthode 2 : un point d’arrêt. Si le code est obfusqué et que la recherche ne donne rien, exécutez debug(grecaptcha.execute) dans la console (debug(grecaptcha.enterprise.execute) pour Enterprise), puis effectuez sur la page l’action qui déclenche la vérification (par exemple cliquer sur « Se connecter »). Quand l’exécution s’arrête sur le point d’arrêt, lisez la valeur de action dans le panneau Scope à droite.
Un site peut utiliser des action différentes à chaque étape (par exemple signup/submit_email puis signup/success) ; prenez la valeur de l’étape que vous voulez franchir. Appuyez sur F8 pour poursuivre l’exécution et voir l’action suivante.
Fonction de rappel
Section intitulée « Fonction de rappel »Quand vous renseignez le token dans le navigateur avec Selenium ou un outil similaire, appelez ensuite la fonction de rappel de la page pour lui indiquer que la vérification est terminée :
- Recherchez
data-callbackdans l’onglet Elements : sa valeur est le nom de la fonction de rappel, par exempledata-callback="onSuccess". - Ou recherchez
grecaptcha.renderet lisez le paramètrecallback. - Ou consultez
___grecaptcha_cfg.clientsdans la console, ou utilisez le script de recherche automatique ci-dessus.
Pour l’appeler :
driver.execute_script("onSuccess(arguments[0])", g_recaptcha_response)Certaines pages n’ont pas de fonction de rappel : placez le token dans le champ texte g-recaptcha-response, puis soumettez directement le formulaire. Pour le déroulement complet, consultez Valider un reCAPTCHA avec un token.