Guide
Tâche (Token)
Geetest

GeeTestTask : résoudre Geetest

ASTUCE

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

Les types de tâches types que nous supportons :

  • GeeTestTaskProxyLess

TYPES D’IMAGES SUPPORTÉS

TypeNoteÉtat
img.pngslidestable
img_2.pngicon clickstable
img_2.pngicon crushstable
img_2.pngninestable
img_2.pnggobangstable

Créer une tâche

Créez une tâche avec createTask pour créer une tâche.

Structure de l’objet tâche

PropriétésTypeRequisDescription
typeStringRequisGeeTestTaskProxyLess
websiteURLStringRequisAdresse web du site utilisant geetest (Ex : https://geetest.com)
gtStringRequisSeulement Geetest V3 est requis
challengeStringRequisSeulement Geetest V3 est requis
captchaIdStringOptionnelSeulement Geetest V4 est requis
geetestApiServerSubdomainStringOptionnelSous-domaine d’API spécial, exemple : api.geetest.com

Exemple de requête

Exemple de requête utilisant Geetest V3

POST https://api.capsolver.com/createTask
Host: api.capsolver.com
Content-Type: application/json
{
    "clientKey": "YOUR_API_KEY",
    "task": {
        "type":"GeetestTaskProxyless",
        "websiteURL":"https://mywebsite.com/geetest/test.php",
        "gt":"",
        "challenge":"",
        "geetestApiServerSubdomain":"api.geetest.com" // Optional
    }
}

Exemple de requête utilisant Geetest V4

POST https://api.capsolver.com/createTask
Host: api.capsolver.com
Content-Type: application/json
{
    "clientKey": "YOUR_API_KEY",
    "task": {
        "type":"GeetestTaskProxyless",
        "websiteURL":"https://mywebsite.com/geetest/test.php",
        "captchaId": "..."
    }
}

Exemple de réponse

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

Obtenir le résultat

Utilisez getTaskResult pour obtenir le résultat. Selon la charge du système, vous obtiendrez le résultat dans un intervalle de 3s à 10s.

Exemple de requête

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

Exemple de réponse

Exemple de réponse utilisant GeetestV3

{
  "errorId": 0,
  "solution": {
    "challenge": "",
    "validate": ""
  },
  "status": "ready"
}

Exemple de réponse utilisant GeetestV4

{
  "errorId": 0,
  "taskId": "e0ecaaa8-06f6-41fd-a02e-a0c79b957b15",
  "status": "ready",
  "solution": {
    "captcha_id": "",
    "captcha_output": "",
    "gen_time": "",
    "lot_number": "",
    "pass_token": "",
    "risk_type": "slide"
  }
}

Utiliser la requête SDK

# pip install --upgrade capsolver
# export CAPSOLVER_API_KEY='...'
 
import capsolver
 
capsolver.api_key = "..."
# v3
solution = capsolver.solve({
    "type": "GeeTestTaskProxyLess",
    "websiteURL": "http://mywebsite.com/geetest/test.php",
    "gt": "...",
    "challenge": "..."
})
 
# v4
solution = capsolver.solve({
    "type": "GeeTestTaskProxyLess",
    "websiteURL": "http://mywebsite.com/geetest/test.php",
    "captchaId": "..."
})

Exemple de code

# pip install requests
import requests
import time
 
api_key = "YOUR_API_KEY"  # TODO: your api key of capsolver
 
 
def capsolver():
    payload = {
        "clientKey": api_key,
        "task": {
            "type": 'GeeTestTaskProxyLess',
            "websiteURL": "https://mywebsite.com/geetest/test.php",  # page url of your site
            "gt": "...",  # v3 is required
            "challenge":   "...",  # v3 is required
            "captchaId":   "...",  # v4 is required
        }
    }
    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")
        if status == "failed" or resp.get("errorId"):
            print("Solve failed! response:", res.text)
            return
 
 
solution = capsolver()
print(solution)

Points à noter

  1. Veuillez ne pas copier directement de l’outil de développement du navigateur, récupérez GT et challenge sur demande.

  2. Un petit nombre d’erreurs pour réobtenir les paramètres du code de vérification peuvent être réessayées.

  3. Les paramètres du code de vérification ne peuvent être soumis pour identification qu’une seule fois, ne soumettez pas les mêmes paramètres plusieurs fois pour identifier, il faut réinitialiser l’acquisition.

  4. Remarque : Si vous ne pouvez pas passer le site, il peut s’agir de problèmes d’encodage. Dans ce cas, remplacez le symbole = du CAPTCHA par %3D, les autres sans encodage, veuillez en prendre note.

  5. Les paramètres tels que le serveur de test peuvent être consultés ici dans le document Geetest.