Anleitung
Aufgabe (Token)
reCAPTCHA v3

ReCaptchaV3: reCAPTCHA v3 lösen

TIPP

Erstellen Sie die Aufgabe mit der Methode createTask und erhalten Sie das Ergebnis mit der Methode getTaskResult.

Die von uns unterstützten Aufgabentypen (types):

  • ReCaptchaV3Task dieser Aufgabentyp erfordert Ihre eigenen Proxys.
  • ReCaptchaV3EnterpriseTask dieser Aufgabentyp erfordert Ihre eigenen Proxys.
  • ReCaptchaV3TaskProxyLess verwendet den eingebauten Proxy des Servers.
  • ReCaptchaV3EnterpriseTaskProxyLess verwendet den eingebauten Proxy des Servers.

Aufgabe erstellen

Erstellen Sie eine Aufgabe mit der Methode createTask.

Bevor Sie eine Aufgabe erstellen, müssen Sie möglicherweise deren Callback-Funktionen finden, wenn Sie Tokens in Automatisierungstools wie Playwright und Puppeteer verwenden möchten. Referenz:

Aufgabenobjektstruktur

WARNUNG

Wenn Sie nicht wissen, wie Sie Parameter einstellen sollen, verwenden Sie bitte die CapSolver Extension, um die erforderlichen Parameter automatisch zu erhalten.


Wenn Sie feststellen, dass das v3-Token ungültig ist, verwenden Sie bitte die CapSolver Extension, um die JSON-Konfiguration zu erhalten und senden Sie sie an unseren Kundenservice zur Konfiguration. Nach der Konfiguration wird die Token-Bewertung erheblich verbessert.

EigenschaftenTypErforderlichBeschreibung
typeStringErforderlichReCaptchaV3Task
ReCaptchaV3TaskProxyLess
ReCaptchaV3EnterpriseTask
ReCaptchaV3EnterpriseTaskProxyLess
websiteURLStringErforderlichDie Adresse der Webseite mit reCAPTCHA.
websiteKeyStringErforderlichreCAPTCHA-Website-Schlüssel.
proxyStringOptionalErfahren Sie mehr unter Proxys verwenden.
pageActionStringOptionalFür ReCaptchaV3: Den Wert des action-Parameters finden Sie, indem Sie nach grecaptcha.execute suchen.
enterprisePayloadObjectOptionalFür die Enterprise-Version suchen Sie nach grecaptcha.enterprise.render und übergeben den s-Parameter.
isSessionBoolOptionalSession-Modus, wenn aktiviert, wird ein recaptcha-ca-t-Wert zurückgegeben, der als Cookie verwendet wird. Er erscheint normalerweise in v3.

Hinweis: Einige Websites erfordern einen recaptcha-ca-e-Wert, der normalerweise in v2 erscheint. Wenn dieser Wert vorhanden ist, wird er automatisch zurückgegeben, ohne dass zusätzliche Parameter gesetzt werden müssen.
apiDomainStringOptionalDer Domainname zum Laden des Captchas. Normalerweise muss dieser Parameter nicht übergeben werden.
http://www.google.com/
http://www.recaptcha.net/

Beispielanfrage

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
  }
}

Nachdem Sie uns die Aufgabe übermittelt haben, sollten Sie bei Erfolg in der Antwort eine ‘taskId’ erhalten. Bitte lesen Sie errorCode: vollständige Fehlerliste, wenn Sie die Task-ID nicht erhalten haben.

Beispielantwort

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

Ergebnisse abrufen

Nachdem Sie die taskId haben, müssen Sie die taskId übermitteln, um die Lösung abzurufen. Die Antwortstruktur wird in getTaskResult erklärt.

Abhängig von der Systemauslastung erhalten Sie die Ergebnisse innerhalb eines Intervalls von 1s bis 10s.

Beispielanfrage

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

Beispielantwort

{
    "errorId": 0,
    "errorCode": null,
    "errorDescription": null,
    "solution": {
        "userAgent": "xxx", // User-Agent
        "secChUa": "xxx", // Sec-Ch-Ua
        "createTime": 1671615324290, // Die Erstellungszeit des Tokens
        "gRecaptchaResponse": "3AHJ......", // Token
        "recaptcha-ca-t": "AbEM......", // Einige v3-Websites haben einen Session-Modus. Nach Aktivierung von isSession wird dieser Parameter zurückgegeben und als Cookie verwendet.
        "recaptcha-ca-e": "Abp_......" // Einige v2-Websites haben diesen Parameter, der als Cookie verwendet wird. Wenn ein solcher Wert vorhanden ist, wird er automatisch zurückgegeben.
    },
    "status": "ready"
}

SDK-Anfrage verwenden

# 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",
})

Beispielcode

# 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_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)