Aufgabentypen
reCAPTCHA v2
Diese Seite wurde maschinell aus der chinesischen Version übersetzt und kann Fehler enthalten. Maßgeblich ist die chinesische Version.
Eine reCAPTCHA-v2-Aufgabe gibt ein Token (gRecaptchaResponse) zurück. Wenn Sie es an die Zielwebsite senden, bestehen Sie die Prüfung, ohne Bilder anzuklicken. Der am häufigsten genutzte Typ NoCaptchaTaskProxyless kostet 15 Punkte (≈ $2.25 / 1k) pro Aufgabe und arbeitet asynchron: Erstellen Sie die Aufgabe mit createTask und rufen Sie dann alle 5 Sekunden getTaskResult auf, um das Ergebnis abzuholen. Bei fehlgeschlagenen Aufgaben und Zeitüberschreitungen erfolgt automatisch eine Punkteerstattung.
https://api.yescaptcha.com/createTaskGlobaler Endpointhttps://cn.yescaptcha.com/createTaskChina-EndpointDer Anfragekörper ist JSON und wird mit Ihrem clientKey authentifiziert (kopieren Sie ihn im Dashboard auf yescaptcha.com). Fragen Sie das Ergebnis an dem Endpoint ab, an dem Sie die Aufgabe erstellt haben.
Einsatzszenarien
Abschnitt betitelt „Einsatzszenarien“- Auf der Seite gibt es ein Kontrollkästchen „Ich bin kein Roboter“ (I’m not a robot): Standardversion.
- Es gibt kein Kontrollkästchen, und die Bildaufgabe erscheint erst nach dem Klick auf den Senden-Button: unsichtbare Version. Fügen Sie
"isInvisible": truehinzu. - Die Seite lädt
recaptcha/enterprise.js, oder die Anfrageadressen enthaltenenterprise: Enterprise-Version. Verwenden Sie einen Typ, dessen NameEnterpriseenthält.
Wenn Sie nicht sicher sind, um welche Variante es sich handelt, lesen Sie Captcha-Typ bestimmen. Wenn die Erfolgsquote per Token nicht ausreicht, können Sie stattdessen reCAPTCHA-v2-Bilderkennung verwenden: Die API teilt Ihnen mit, welche Bilder anzuklicken sind, und Sie klicken im Browser selbst.
Typen und Preise
Abschnitt betitelt „Typen und Preise“| Aufgabentyp | Preis | Modus | Hinweise |
|---|---|---|---|
NoCaptchaTaskProxyless | $2.25 / 1k; 15 Punkte/Aufgabe · ¥15 / 1k | Asynchron | |
RecaptchaV2TaskProxyless | $3.00 / 1k; 20 Punkte/Aufgabe · ¥20 / 1k | Asynchron | Gleiche Parameter wie NoCaptchaTaskProxyless, aber über eine andere Route; beide können als Fallback füreinander verwendet werden |
NoCaptchaTask | $2.25 / 1k; 15 Punkte/Aufgabe · ¥15 / 1k | Asynchron | Eigener Proxy |
RecaptchaV2EnterpriseTaskProxyless | $3.00 / 1k; 20 Punkte/Aufgabe · ¥20 / 1k | Asynchron | |
RecaptchaV2EnterpriseTask | $3.00 / 1k; 20 Punkte/Aufgabe · ¥20 / 1k | Asynchron | Eigener Proxy |
Die Preise in US-Dollar sind Schätzwerte bei 1 US$ ≈ ¥6.67; Aufgaben werden in Punkten berechnet.
NoCaptchaTaskProxylessundRecaptchaV2TaskProxylesshaben dieselben Parameter, laufen aber über verschiedene Routen. Wenn einer davon eine unzureichende Erfolgsquote hat, versuchen Sie den anderen.- Typen ohne
Proxylessim Namen (NoCaptchaTask,RecaptchaV2EnterpriseTask) laden das Captcha über Ihren eigenen Proxy. Dafür müssen SieproxyType,proxyAddress,proxyPortund weitere Felder übergeben. Verwenden Sie sie, wenn die Zielwebsite Anforderungen an die IP-Adresse des Besuchers stellt.
Anfrageparameter
Abschnitt betitelt „Anfrageparameter“Das task-Objekt von createTask:
| Feld | Typ | Erforderlich | Beschreibung |
|---|---|---|---|
type | string | Ja | Aufgabentyp; siehe „Aufgabentypen und Preise“ auf dieser Seite |
websiteURL | string | Ja | Vollständige URL der Seite, auf der das Captcha angezeigt wird. Verwenden Sie die Website, auf der Sie das Captcha sehen, nicht die Domain des Captcha-Anbieters |
websiteKey | string | Ja | Der Website-Schlüssel (sitekey), zu finden im Quelltext der Seite oder in den Netzwerkanfragen; ändert sich in der Regel nicht |
isInvisible | boolean | Nein | Auf true setzen für die unsichtbare Variante; sonst weglassen |
proxyType | string | Einige Typen | Proxy-Protokoll: http, https, socks4 oder socks5 (Erforderlich für NoCaptchaTask, RecaptchaV2EnterpriseTask) |
proxyAddress | string | Einige Typen | IP-Adresse oder Hostname des Proxys. Lokale oder private Adressen wie 127.0.0.1 oder 192.168.x.x funktionieren nicht, da unsere Server sie nicht erreichen können (Erforderlich für NoCaptchaTask, RecaptchaV2EnterpriseTask) |
proxyPort | integer | Einige Typen | Proxy-Port (Erforderlich für NoCaptchaTask, RecaptchaV2EnterpriseTask) |
proxyLogin | string | Nein | Proxy-Benutzername, falls der Proxy eine Authentifizierung erfordert (nur NoCaptchaTask, RecaptchaV2EnterpriseTask) |
proxyPassword | string | Nein | Proxy-Passwort, falls der Proxy eine Authentifizierung erfordert (nur NoCaptchaTask, RecaptchaV2EnterpriseTask) |
userAgent | string | Nein | User-Agent des Browsers. Enthält das Ergebnis einen userAgent, verwenden Sie diesen Wert, wenn Sie das Token senden (nur NoCaptchaTask, RecaptchaV2EnterpriseTask) |
enterprisePayload | object | Nein | Zusätzliche Enterprise-Parameter, z. B. der s-Wert von reCAPTCHA Enterprise: {"s": "..."}. Weglassen, wenn die Seite ihn nicht verwendet (nur RecaptchaV2EnterpriseTaskProxyless, RecaptchaV2EnterpriseTask) |
Wie Sie websiteURL und websiteKey finden, lesen Sie unter reCAPTCHA-Parameter finden.
Anfragebeispiel
Abschnitt betitelt „Anfragebeispiel“Am Beispiel der offiziellen Demoseite von Google:
{ "clientKey": "YOUR_CLIENT_KEY", "task": { "type": "NoCaptchaTaskProxyless", "websiteURL": "https://www.google.com/recaptcha/api2/demo", "websiteKey": "6Le-wvkSAAAAAPBMRTvw0Q4Muexq9bi0DJwx_mJ-" }}Vollständiger Code (Aufgabe erstellen, alle 5 Sekunden abfragen, Token ausgeben). Legen Sie vor dem Ausführen Ihren ClientKey in der Umgebungsvariable YESCAPTCHA_CLIENT_KEY ab:
curl -s https://api.yescaptcha.com/createTask \ -H 'Content-Type: application/json' \ -d '{ "clientKey": "YOUR_CLIENT_KEY", "task": { "type": "NoCaptchaTaskProxyless", "websiteURL": "https://www.google.com/recaptcha/api2/demo", "websiteKey": "6Le-wvkSAAAAAPBMRTvw0Q4Muexq9bi0DJwx_mJ-" }}'
# Returns {"errorId":0,"taskId":"..."}; then poll every 5 seconds:curl -s https://api.yescaptcha.com/getTaskResult \ -H 'Content-Type: application/json' \ -d '{"clientKey": "YOUR_CLIENT_KEY", "taskId": "TASK_ID"}'import osimport time
import requests
API = "https://api.yescaptcha.com"CLIENT_KEY = os.environ["YESCAPTCHA_CLIENT_KEY"] # Read the clientKey from an environment variable
def call(method, payload): r = requests.post(f"{API}/{method}", json={"clientKey": CLIENT_KEY, **payload}, timeout=30) data = r.json() if data.get("errorId"): raise RuntimeError(f"{data.get('errorCode')}: {data.get('errorDescription')}") return data
def solve(task): task_id = call("createTask", {"task": task})["taskId"] for _ in range(36): # Poll every 5 seconds, for up to about 3 minutes time.sleep(5) result = call("getTaskResult", {"taskId": task_id}) if result.get("status") == "ready": return result["solution"] raise TimeoutError(task_id)
solution = solve({ "type": "NoCaptchaTaskProxyless", "websiteURL": "https://www.google.com/recaptcha/api2/demo", "websiteKey": "6Le-wvkSAAAAAPBMRTvw0Q4Muexq9bi0DJwx_mJ-",})print(solution["gRecaptchaResponse"])const API = 'https://api.yescaptcha.com';const CLIENT_KEY = process.env.YESCAPTCHA_CLIENT_KEY; // Read the clientKey from an environment variable
async function call(method, payload) { const res = await fetch(`${API}/${method}`, { method: 'POST', headers: { 'Content-Type': 'application/json' }, body: JSON.stringify({ clientKey: CLIENT_KEY, ...payload }), }); const data = await res.json(); if (data.errorId) throw new Error(`${data.errorCode}: ${data.errorDescription}`); return data;}
async function solve(task) { const { taskId } = await call('createTask', { task }); for (let i = 0; i < 36; i++) { // Poll every 5 seconds, for up to about 3 minutes await new Promise((r) => setTimeout(r, 5000)); const result = await call('getTaskResult', { taskId }); if (result.status === 'ready') return result.solution; } throw new Error(`timeout: ${taskId}`);}
const solution = await solve({ type: "NoCaptchaTaskProxyless", websiteURL: "https://www.google.com/recaptcha/api2/demo", websiteKey: "6Le-wvkSAAAAAPBMRTvw0Q4Muexq9bi0DJwx_mJ-",});console.log(solution.gRecaptchaResponse);Bei der Enterprise-Version: Wenn die Seite einen s-Wert an reCAPTCHA übergibt, tragen Sie ihn in enterprisePayload ein:
{ "clientKey": "YOUR_CLIENT_KEY", "task": { "type": "RecaptchaV2EnterpriseTaskProxyless", "websiteURL": "https://example.com/login", "websiteKey": "SITE_KEY_OF_THE_PAGE", "enterprisePayload": { "s": "S_VALUE_FROM_THE_PAGE" } }}Mit eigenem Proxy:
{ "clientKey": "YOUR_CLIENT_KEY", "task": { "type": "NoCaptchaTask", "websiteURL": "https://www.google.com/recaptcha/api2/demo", "websiteKey": "6Le-wvkSAAAAAPBMRTvw0Q4Muexq9bi0DJwx_mJ-", "proxyType": "http", "proxyAddress": "proxy.example.com", "proxyPort": 8080, "proxyLogin": "user", "proxyPassword": "pass" }}Ergebnis
Abschnitt betitelt „Ergebnis“createTask gibt die Aufgaben-ID zurück:
{ "errorId": 0, "taskId": "61138bb6-19fb-11ec-a9c8-0242ac110006"}Rufen Sie damit getTaskResult auf. Solange die Aufgabe noch bearbeitet wird, lautet die Antwort {"errorId": 0, "status": "processing"}; fragen Sie nach 5 Sekunden erneut ab. Ist die Aufgabe abgeschlossen, lautet die Antwort:
{ "errorId": 0, "status": "ready", "solution": { "gRecaptchaResponse": "03AGdBq25SxXT-pmSeBXjzScW-EiocHwwpwqtk1QXlJnGnU..." }}| Feld | Typ | Beschreibung |
|---|---|---|
gRecaptchaResponse | string | Das Token, das an die Zielwebsite gesendet wird. Einmalig verwendbar, ca. 120 Sekunden gültig; verwenden Sie es innerhalb von 60 Sekunden |
Eine Aufgabe wird höchstens etwa 110 Sekunden bearbeitet. Danach wird ERROR_TASK_TIMEOUT zurückgegeben und die Punkte werden erstattet. Bei Fehlern ist errorId gleich 1; behandeln Sie sie anhand von errorCode, siehe Fehlercodes. Wie Sie das Token nach dem Erhalt senden, lesen Sie unter reCAPTCHA mit einem Token abschließen.
Häufige Fragen
Abschnitt betitelt „Häufige Fragen“Warum besteht das Token für dieselbe Website manchmal die Prüfung und manchmal nicht?
Abschnitt betitelt „Warum besteht das Token für dieselbe Website manchmal die Prüfung und manchmal nicht?“Ob ein Token besteht, entscheidet die Zielwebsite. Sie bewertet jede Verifizierung mit einem Score und legt einen Schwellenwert fest, der sich jederzeit ändern kann. Deshalb unterscheidet sich die Erfolgsquote von Website zu Website, und nicht jedes Token besteht. Sie können einen ähnlichen Aufgabentyp zum Vergleich der Erfolgsquote ausprobieren oder stattdessen die Bilderkennung verwenden.
Wie lange ist ein Token gültig?
Abschnitt betitelt „Wie lange ist ein Token gültig?“Es ist nur einmal verwendbar und etwa 120 Sekunden gültig. Senden Sie es am besten innerhalb von 60 Sekunden nach Erhalt. Die Gültigkeitsdauer legt Google fest.
Wird bei fehlgeschlagener Lösung ein Punkteabzug berechnet?
Abschnitt betitelt „Wird bei fehlgeschlagener Lösung ein Punkteabzug berechnet?“Nein. Aufgaben, die ERROR_CAPTCHA_UNSOLVABLE zurückgeben oder in eine Zeitüberschreitung laufen, werden automatisch mit einer Punkteerstattung abgeschlossen, siehe Abrechnung und Punkteerstattung.