Aufgabentypen
Bilder mit Buchstaben und Ziffern erkennen
Diese Seite wurde maschinell aus der chinesischen Version übersetzt und kann Fehler enthalten. Maßgeblich ist die chinesische Version.
Senden Sie ein Captcha-Bild mit Buchstaben und Ziffern als Base64, und Sie erhalten den darin enthaltenen Text zurück (solution.text). ImageToTextTaskOcrBase kostet 2 Punkte (≈ $0.30 / 1k) pro Bild und arbeitet synchron: Ein einziger createTask-Request liefert das Ergebnis. Wenn Sie Vorgaben wie Groß-/Kleinschreibung, reine Ziffern oder Rechenaufgaben angeben müssen, verwenden Sie das asynchrone ImageToTextTask.
https://api.yescaptcha.com/createTaskGlobaler Endpointhttps://cn.yescaptcha.com/createTaskChina-EndpointDer Request-Body ist JSON und wird mit clientKey authentifiziert.
Typen und Preise
Abschnitt betitelt „Typen und Preise“| Aufgabentyp | Preis | Modus | Hinweise |
|---|---|---|---|
ImageToTextTaskOcrBase | $0.30 / 1k; 2 Punkte/Aufgabe · ¥2 / 1k | Synchron | |
ImageToTextTaskMuggle | $0.30 / 1k; 2 Punkte/Aufgabe · ¥2 / 1k | Synchron | Unterstützt keine case-/numeric-Optionen; mit project_name wählen Sie ein individuelles Modell aus |
ImageToTextTask | $0.60 / 1k; 4 Punkte/Aufgabe · ¥4 / 1k | Asynchron | |
ImageToTextTaskM1 | $2.25 / 1k; 15 Punkte/Aufgabe · ¥15 / 1k | Asynchron |
Die Preise in US-Dollar sind Schätzwerte bei 1 US$ ≈ ¥6.67; Aufgaben werden in Punkten berechnet.
| Sie benötigen | Verwenden Sie |
|---|---|
| Gewöhnliche Captchas mit Buchstaben und Ziffern, am günstigsten und schnellsten | ImageToTextTaskOcrBase, ImageToTextTaskMuggle (synchron) |
| Erkennung mit einem für Sie angepassten Modell | ImageToTextTaskMuggle mit project_name |
| Unterscheidung von Groß-/Kleinschreibung, nur Ziffern, Rechenaufgaben, begrenzte Länge | ImageToTextTask, ImageToTextTaskM1 (asynchron) |
Die Typen verwenden unterschiedliche Modelle und Routen, daher kann das Ergebnis bei gleichen Bildern abweichen. Testen Sie mehrere Typen und wählen Sie den besten.
Request-Parameter
Abschnitt betitelt „Request-Parameter“| Feld | Typ | Erforderlich | Beschreibung |
|---|---|---|---|
type | string | Ja | Aufgabentyp; siehe „Aufgabentypen und Preise“ auf dieser Seite |
body | string | Ja | Base64-kodiertes Bild ohne das Präfix data:image/...;base64, und ohne Zeilenumbrüche |
project_name | string | Nein | Name eines individuellen Modells, nur von ImageToTextTaskMuggle unterstützt. Weglassen, um das allgemeine Modell für Buchstaben und Ziffern zu verwenden. Für ein individuelles Modell wenden Sie sich an den Support (nur ImageToTextTaskMuggle) |
phrase | boolean | Nein | true bedeutet, dass die Antwort mindestens ein Leerzeichen enthält (nur ImageToTextTask, ImageToTextTaskM1) |
case | boolean | Nein | true bedeutet, dass die Antwort zwischen Groß- und Kleinschreibung unterscheidet (nur ImageToTextTask, ImageToTextTaskM1) |
numeric | integer | Nein | 0 keine Vorgabe; 1 nur Ziffern; 2 keine Ziffern (nur ImageToTextTask, ImageToTextTaskM1) |
math | boolean | Nein | true bedeutet, dass das Bild eine Rechenaufgabe ist und die Antwort deren Ergebnis ist (nur ImageToTextTask, ImageToTextTaskM1) |
minLength | integer | Nein | Minimale Länge der Antwort; 0 bedeutet kein Limit (nur ImageToTextTask, ImageToTextTaskM1) |
maxLength | integer | Nein | Maximale Länge der Antwort; 0 bedeutet kein Limit (nur ImageToTextTask, ImageToTextTaskM1) |
body ist die Base64-Kodierung der Bilddatei. WebP-Bilder werden automatisch konvertiert.
Request-Beispiel
Abschnitt betitelt „Request-Beispiel“{ "clientKey": "YOUR_CLIENT_KEY", "task": { "type": "ImageToTextTaskOcrBase", "body": "BASE64_IMAGE" }}Vollständiger Code (liest captcha.png aus dem aktuellen Verzeichnis):
# Replace BASE64_IMAGE with the Base64-encoded imagecurl -s https://api.yescaptcha.com/createTask \ -H 'Content-Type: application/json' \ -d '{ "clientKey": "YOUR_CLIENT_KEY", "task": { "type": "ImageToTextTaskOcrBase", "body": "BASE64_IMAGE" }}'import osimport base64
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): return call("createTask", {"task": task})["solution"]
# Base64-encode the image (no data: prefix)with open("captcha.png", "rb") as f: image_b64 = base64.b64encode(f.read()).decode()
solution = solve({ "type": "ImageToTextTaskOcrBase", "body": image_b64,})print(solution["text"])import { readFileSync } from 'node:fs';
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 { solution } = await call('createTask', { task }); return solution;}
// Base64-encode the image (no data: prefix)const imageB64 = readFileSync('captcha.png').toString('base64');
const solution = await solve({ type: "ImageToTextTaskOcrBase", body: imageB64,});console.log(solution.text);Asynchrone Aufgabe mit Vorgaben:
{ "clientKey": "YOUR_CLIENT_KEY", "task": { "type": "ImageToTextTask", "body": "BASE64_IMAGE", "case": true, "numeric": 0, "minLength": 4, "maxLength": 6 }}Ergebnis
Abschnitt betitelt „Ergebnis“Synchrone Typen liefern das Ergebnis direkt in createTask:
{ "errorId": 0, "status": "ready", "solution": { "text": "LMResm" }, "taskId": "2376919c-1863-11ec-a012-94e6f7355a0b"}Asynchrone Typen (ImageToTextTask, ImageToTextTaskM1) liefern zunächst eine taskId. Fragen Sie danach alle 5 Sekunden mit getTaskResult ab (Polling); bei Abschluss hat solution dasselbe Format.
| Feld | Typ | Beschreibung |
|---|---|---|
text | string | Der erkannte Text |
Eigene Modelle
Abschnitt betitelt „Eigene Modelle“Das allgemeine Modell funktioniert bei allen Captchas mit Buchstaben und Ziffern, ist aber etwas weniger genau als ein speziell trainiertes Modell. Wenn die Bilder, die Sie erkennen möchten, immer im gleichen Stil gehalten sind, können Sie den Support kontaktieren, um ein eigenes Modell zu erhalten, und es anschließend mit ImageToTextTaskMuggle und project_name auswählen.
Wird bei falscher Erkennung ein Punkteabzug berechnet?
Abschnitt betitelt „Wird bei falscher Erkennung ein Punkteabzug berechnet?“Bei synchronen Typen werden Punkte abgezogen, sobald ein Ergebnis zurückgegeben wird, auch wenn es falsch ist. Vergleichen Sie andere Typen oder lassen Sie ein eigenes Modell erstellen.
Ich erhalte ERROR_ZERO_CAPTCHA_FILESIZE oder ERROR_PARSE_IMAGE_FAIL
Abschnitt betitelt „Ich erhalte ERROR_ZERO_CAPTCHA_FILESIZE oder ERROR_PARSE_IMAGE_FAIL“Das Base64 des Bildes ist unvollständig oder enthält das Präfix data: bzw. Zeilenumbrüche. Prüfen Sie die Kodierung, siehe Fehlercodes.
Verwandte Beispiele
Abschnitt betitelt „Verwandte Beispiele“- Schnellstart: erster Request mit
ImageToTextTaskOcrBase - Python-Beispiele