ReCaptchaV2: reCAPTCHA v2 lösen
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
Wenn Sie nicht wissen, wie man Parameter setzt, verwenden Sie bitte die CapSolver Extension, um die benötigten Parameter automatisch zu erhalten.
- Referenzartikel: Wie man jedes Captcha erkennt und seine Parameter extrahiert
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.
Eigenschaft | Typ | Erforderlich | Beschreibung |
---|---|---|---|
type | String | Erforderlich | ReCaptchaV2TaskProxyLess ReCaptchaV2EnterpriseTask ReCaptchaV2EnterpriseTaskProxyLess |
websiteURL | String | Erforderlich | Die URL der Zielwebseite, die das Captcha lädt. Es ist am besten, die vollständige URL anstelle nur des Hosts zu übermitteln. |
websiteKey | String | Erforderlich | Recaptcha Website-Schlüssel. |
proxy | String | Optional | Erfahren Sie Proxys verwenden. |
pageAction | String | Optional | Für ReCaptchaV2, wenn ein sa -Parameter in der Payload des /anchor -Endpunkts vorhanden ist, übermitteln Sie bitte seinen Wert. |
recaptchaDataSValue | String | Optional | Für ReCaptchaV2 normale Version, wenn ein s -Parameter in der Payload des /anchor -Endpunkts vorhanden ist, übermitteln Sie bitte seinen Wert. |
enterprisePayload | Objekt | Optional | Für ReCaptchaV2 Enterprise-Version, wenn ein s -Parameter in der Payload des /anchor -Endpunkts vorhanden ist, übermitteln Sie bitte seinen Wert. |
isInvisible | Bool | Optional | Ü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. |
isSession | Bool | Optional | Session-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. |
apiDomain | String | Optional | Der 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)