Anleitung
Aufgabe (Token)
reCAPTCHA v2

ReCaptchaV2: reCAPTCHA v2 lösen

TIPP

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

Die von uns unterstützten Aufgabentypen types:

  • ReCaptchaV2TaskProxyLess verwendet den integrierten Proxy des Servers.
  • ReCaptchaV2EnterpriseTask dieser Aufgabentyp erfordert Ihre eigenen Proxys.
  • ReCaptchaV2EnterpriseTaskProxyLess verwendet den integrierten 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:

Aufgabenobjekt-Struktur

WARNUNG

Wenn Sie nicht wissen, wie man Parameter setzt, verwenden Sie bitte die CapSolver Extension, um die benötigten Parameter automatisch zu erhalten.


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

EigenschaftTypErforderlichBeschreibung
typeStringErforderlichReCaptchaV2TaskProxyLess
ReCaptchaV2EnterpriseTask
ReCaptchaV2EnterpriseTaskProxyLess
websiteURLStringErforderlichDie URL der Zielwebseite, die das Captcha lädt. Es ist am besten, die vollständige URL anstelle nur des Hosts zu übermitteln.
websiteKeyStringErforderlichRecaptcha Website-Schlüssel.
proxyStringOptionalErfahren Sie Proxys verwenden.
pageActionStringOptionalFür ReCaptchaV2, wenn ein sa-Parameter in der Payload des /anchor-Endpunkts vorhanden ist, übermitteln Sie bitte seinen Wert.
recaptchaDataSValueStringOptionalFür ReCaptchaV2 normale Version, wenn ein s-Parameter in der Payload des /anchor-Endpunkts vorhanden ist, übermitteln Sie bitte seinen Wert.
enterprisePayloadObjektOptionalFür ReCaptchaV2 Enterprise-Version, wenn ein s-Parameter in der Payload des /anchor-Endpunkts vorhanden ist, übermitteln Sie bitte seinen Wert.
isInvisibleBoolOptionalÜbergeben Sie true, wenn es kein “Ich bin kein Roboter”-Kontrollkästchen gibt, die Herausforderung aber dennoch erscheint, was normalerweise im v2-Unsichtbar-Modus erforderlich ist.
isSessionBoolOptionalSession-Modus, bei Aktivierung wird ein recaptcha-ca-t-Wert zurückgegeben, der als Cookie verwendet wird. Dies erscheint normalerweise in v3.

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

Beispiel-Anfrage

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 die Aufgabe an uns übermittelt haben, sollten Sie in der Antwort bei Erfolg eine ‘taskId’ erhalten. Bitte lesen Sie errorCode: vollständige Fehlerliste, wenn Sie die Aufgaben-ID nicht erhalten haben.

Beispiel-Antwort

{
    "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 Struktur der Antwort wird in getTaskResult erklärt.

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

Beispiel-Anfrage

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

Beispiel-Antwort

{
    "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 den Session-Modus. Nach der 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": "ReCaptchaV2TaskProxyLess",
            "websiteURL": "https://www.google.com/recaptcha/api2/demo",
            "websiteKey": "6Le-wvkSAAAAAPBMRTvw0Q4Muexq9bi0DJwx_mJ-",
          })

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