Guide
Tâche (Token)
reCAPTCHA v2

ReCaptchaV2 : résolution de reCAPTCHA v2

ASTUCE

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

Le type de tâche types que nous supportons :

  • ReCaptchaV2TaskProxyLess utilise le proxy intégré au serveur.
  • ReCaptchaV2EnterpriseTask ce type de tâche nécessite vos propres proxys.
  • ReCaptchaV2EnterpriseTaskProxyLess utilise le proxy intégré au serveur.

Créer une tâche

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

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

Structure de l’objet tâche

ATTENTION

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 v2 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.

PropriétésTypeRequisDescription
typeChaîneRequisReCaptchaV2TaskProxyLess
ReCaptchaV2EnterpriseTask
ReCaptchaV2EnterpriseTaskProxyLess
websiteURLChaîneRequisL’URL de la page web cible qui charge le captcha. Il est préférable de soumettre l’URL complète plutôt que seulement l’hôte.
websiteKeyChaîneRequisClé du site Recaptcha.
proxyChaîneOptionnelApprenez Comment utiliser les proxys.
pageActionChaîneOptionnelPour ReCaptchaV2, s’il y a un paramètre sa dans la charge utile du point de terminaison /anchor, veuillez soumettre sa valeur
recaptchaDataSValueChaîneOptionnelPour la version normale de ReCaptchaV2, s’il y a un paramètre s dans la charge utile du point de terminaison /anchor, veuillez soumettre sa valeur
enterprisePayloadObjetOptionnelPour la version entreprise de ReCaptchaV2, s’il y a un paramètre s dans la charge utile du point de terminaison /anchor, veuillez soumettre sa valeur
isInvisibleBooléenOptionnelPassez “vrai” s’il n’y a pas de case à cocher “Je ne suis pas un robot” mais que le défi apparaîtra toujours, généralement requis en mode invisible v2.
isSessionBooléenOptionnelMode session. Lorsqu’il est activé, il renverra une valeur recaptcha-ca-t, qui est utilisée comme cookie. Cela apparaît généralement dans v3.

Note : Certains sites web nécessitent une valeur recaptcha-ca-e, qui apparaît généralement dans v2. Si cette valeur est présente, elle sera automatiquement renvoyée sans aucun paramétrage supplémentaire.
apiDomainChaîneOptionnelLe 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 a réussi. 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

Une fois que vous avez 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": "ReCaptchaV2TaskProxyLess",
            "websiteURL": "https://www.google.com/recaptcha/api2/demo",
            "websiteKey": "6Le-wvkSAAAAAPBMRTvw0Q4Muexq9bi0DJwx_mJ-",
          })

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_mJ-"  # site key of your target site
site_url = "https://www.google.com/recaptcha/api2/demo"  # page url of your target site
 
 
def capsolver():
    payload = {
        "clientKey": api_key,
        "task": {
            "type": 'ReCaptchaV2TaskProxyLess',
            "websiteKey": site_key,
            "websiteURL": site_url
        }
    }
    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_key, "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)