Guide
Tâche (Token)
reCAPTCHA v3

ReCaptchaV3 : résoudre reCAPTCHA v3

TIP

Créez la tâche avec la méthode createTask et obtenez le résultat avec la méthode getTaskResult.

Créer une tâche

Créez une tâche avec la méthode createTask.

Avant de créer une tâche, si vous avez besoin d’utiliser des jetons dans des outils d’automatisation tels que playwright et puppeteer, vous devrez peut-être trouver leurs fonctions de rappel. Référence :

Structure de l’objet de tâche

WARNING

Si vous ne savez pas comment définir les paramètres, veuillez utiliser l’extension CapSolver pour obtenir automatiquement les paramètres requis.


Si vous constatez que le jeton v3 est invalide, veuillez utiliser l’extension CapSolver pour obtenir la configuration JSON et l’envoyer à notre service client pour configuration. Après configuration, cela améliorera considérablement le score du jeton.

Version à haut score (M1)

M1 est un type de tâche à score élevé pour reCAPTCHA v3. C’est beaucoup plus cher que la version standard.

  • Contactez-nous avant d’utiliser M1
  • Nécessite une adaptation spécifique au site
  • Peut seulement fonctionner bien sur certains sites

Liste des prix

VersionType de tâchePrix
Standard V3ReCaptchaV3Task
ReCaptchaV3TaskProxyLess
$1/k
Entreprise V3ReCaptchaV3EnterpriseTask
ReCaptchaV3EnterpriseTaskProxyLess
$3/k
Haut score M1ReCaptchaV3M1Task
ReCaptchaV3M1TaskProxyLess
$3/k
Entreprise M1ReCaptchaV3EnterpriseM1Task
ReCaptchaV3EnterpriseM1TaskProxyLess
$10/k
Les types de tâches M1 sont des types de tâches à coût élevé. Veuillez confirmer le prix et les exigences d'adaptation avec le support avant de les utiliser dans la production.
PropriétésTypeRequisDescription
typeStringRequisStandard
ReCaptchaV3Task
ReCaptchaV3TaskProxyLess
ReCaptchaV3EnterpriseTask
ReCaptchaV3EnterpriseTaskProxyLess

Version à haut score (M1)
ReCaptchaV3M1Task
ReCaptchaV3M1TaskProxyLess
ReCaptchaV3EnterpriseM1Task
ReCaptchaV3EnterpriseM1TaskProxyLess
websiteURLStringRequisL’adresse du site web avec recaptcha.
websiteKeyStringRequisLa clé du site web Recaptcha.
proxyStringOptionnelApprenez Utiliser des proxys.
pageActionStringOptionnelPour ReCaptchaV3 : Vous pouvez trouver la valeur du paramètre d’action en recherchant grecaptcha.execute
enterprisePayloadObjectOptionnelPour la version entreprise, recherchez grecaptcha.enterprise.render et passez le paramètre s.
isSessionBoolOptionnelMode session, lorsqu’il est activé, renverra une valeur recaptcha-ca-t, qui est utilisée comme un cookie. Il apparaît généralement en v3.

Note : Certains sites web nécessitent une valeur recaptcha-ca-e, qui apparaît généralement en v2. Si cette valeur est présente, elle sera automatiquement renvoyée sans aucun réglage de paramètre supplémentaire.
apiDomainStringOptionnelLe nom de domaine pour charger le captcha. Généralement, ce paramètre n’a pas besoin d’être transmis.
• http://www.google.com/
• http://www.recaptcha.net/

Exemple de requête

POST https://api.capsolver.com/createTask
Host: api.capsolver.com
Content-Type: application/json
{
  "clientKey": "YOUR_API_KEY",
  "task": {
    "type": "ReCaptchaV2Task",
    "websiteURL": "https://www.google.com/recaptcha/api2/demo",
    "websiteKey": "6Le-wvkSAAAAAPBMRTvw0Q4Muexq9bi0DJwx_mJ-",
    "enterprisePayload": {
      "s": "SOME_ADDITIONAL_TOKEN" // Optional
    },
    "isInvisible": false, // Optional
    "pageAction": "submit", // Optional
    "apiDomain": "", // Optional
    "proxy": "http:ip:port:user:pass", // socks5:ip:port:user:pass, Optional
  }
}

Après avoir soumis la tâche, vous devriez recevoir un ‘taskId’ dans la réponse si elle est réussie. Veuillez lire errorCode: liste complète des erreurs si vous n’avez pas reçu l’ID de la tâche.

Exemple de réponse

{
    "errorId": 0,
    "errorCode": "",
    "errorDescription": "",
    "taskId": "61138bb6-19fb-11ec-a9c8-0242ac110006"
}

Obtenir les résultats

Après avoir obtenu le taskId, vous devez soumettre le taskId pour récupérer la solution. La structure de la réponse est expliquée dans getTaskResult.

En fonction de la charge du système, vous obtiendrez les résultats dans un intervalle de 1s à 10s

Exemple de requête

POST https://api.capsolver.com/getTaskResult
Host: api.capsolver.com
Content-Type: application/json
 
{
    "clientKey": "YOUR_API_KEY",
    "taskId": "61138bb6-19fb-11ec-a9c8-0242ac110006"
}

Exemple de réponse

{
    "errorId": 0,
    "errorCode": null,
    "errorDescription": null,
    "solution": {
        "userAgent": "xxx", // User-Agent
        "secChUa": "xxx", // Sec-Ch-Ua
        "createTime": 1671615324290, // The creation time of the token
        "gRecaptchaResponse": "3AHJ......", // token
        "recaptcha-ca-t": "AbEM......", // Some v3 websites have session mode. After enabling isSession, this parameter will be returned and used as a cookie.
        "recaptcha-ca-e": "Abp_......" // Some v2 websites have this parameter, which is used as a cookie. If there is such a value, it will be automatically returned.
    },
    "status": "ready"
}

Utiliser la requête SDK

# pip install --upgrade capsolver
# export CAPSOLVER_API_KEY='...'
 
import capsolver
 
# capsolver.api_key = "..."
solution = capsolver.solve({
    "type": "ReCaptchaV3TaskProxyLess",
    "websiteURL": "https://www.google.com",
    "websiteKey": "6Le-wvkSAAAAAPBMRTvw0Q4Muexq9bi0DJwx_kl-",
    "pageAction": "login",
})

Exemple de code

# pip install requests
import requests
import time
 
# TODO: set your config
api_key = "YOUR_API_KEY"  # your api key of capsolver
site_key = "6Le-wvkSAAAAAPBMRTvw0Q4Muexq9bi0DJwx_kl-"  # site key of your target site
site_url = "https://www.google.com"  # page url of your target site
 
 
def capsolver():
    payload = {
        "clientKey": api_key,
        "task": {
            "type": 'ReCaptchaV3TaskProxyLess',
            "websiteKey": site_key,
            "websiteURL": site_url,
            "pageAction": "login",
        }
    }
    res = requests.post("https://api.capsolver.com/createTask", json=payload)
    resp = res.json()
    task_id = resp.get("taskId")
    if not task_id:
        print("Failed to create task:", res.text)
        return
    print(f"Got taskId: {task_id} / Getting result...")
 
    while True:
        time.sleep(1)  # delay
        payload = {"clientKey": api_id, "taskId": task_id}
        res = requests.post("https://api.capsolver.com/getTaskResult", json=payload)
        resp = res.json()
        status = resp.get("status")
        if status == "ready":
            return resp.get("solution", {}).get('gRecaptchaResponse')
        if status == "failed" or resp.get("errorId"):
            print("Solve failed! response:", res.text)
            return
 
 
token = capsolver()
print(token)