Dokumentationsmenü

ImageToTextTask: ein Bild-Captcha lösen

Senden Sie ein Bild und empfangen Sie Text daraus. Text kann nur Ziffern, Buchstaben, Sonderzeichen und ein Leerzeichen enthalten. GIF-Animationen werden unterstützt, bis zu 500kb. Benutzerdefinierte Captchas wie "Finde eine Katze auf diesem Bildsatz und gib ihre Nummer ein" werden nicht unterstützt.

Aufgabenobjekt

Wert Art Erforderlich Standardwert Zweck
type String Ja ImageToTextTask Definiert den Aufgabentyp.
body String Ja Dateikörper in base64 kodiert. Achten Sie darauf, dass Sie ihn ohne Zeilenumbrüche senden. Fügen Sie keine 'data:image/png,' oder ähnliche Tags ein, nur sauberes base64!
phrase Boolesche Nein false false - keine Anforderungen
true - verlangt vom Arbeiter, dass er eine Antwort mit mindestens einem "Leerzeichen" eingibt. Wenn kein Leerzeichen vorhanden ist, wird die Aufgabe übersprungen, also verwenden Sie es mit Vorsicht.
case Boolesche Nein true false - keine Anforderungen
true - dem Arbeiter wird eine spezielle Markierung angezeigt, die besagt, dass bei der Eingabe der Antwort die Groß- und Kleinschreibung beachtet werden muss.
numeric Integer Nein 0 0 - keine Anforderungen
1 - es sind nur Ziffern erlaubt
2 - alle Buchstaben sind erlaubt, aber keine Ziffern
math Boolesche Nein false false - keine Anforderungen
true - Der Arbeiter sieht eine spezielle Markierung, die besagt, dass die Antwort berechnet werden muss
minLength Integer Nein 0 0 - keine Anforderungen
>1 - definiert die minimale Länge der Antwort
maxLength Integer Nein 0 0 - keine Anforderungen
>1 - definiert die maximale Länge der Antwort
comment String Nein Zusätzliche Kommentare für Arbeiter wie "Buchstaben in rot eingeben".
Das Ergebnis ist nicht garantiert, es liegt in den Händen des Arbeiters.
websiteURL String Nein Optionaler Parameter zur Unterscheidung der Bild-Captcha-Quelle in der Ausgabenstatistik.

Anfrage-Beispiel

CURL
          curl -i -H "Accept: application/json" \
     -H "Content-Type: application/json" \
     -X POST -d '{
    "clientKey":"YOUR_API_KEY_HERE",
    "task":
        {
            "type":"ImageToTextTask",
            "body":"BASE64_BODY_HERE__NO_NEWLINES__NO_EXTRA_TAGS__ONLY_CLEAN_BASE64",
            "phrase":false,
            "case":false,
            "numeric":0,
            "math":false,
            "minLength":0,
            "maxLength":0
        }
}' https://api.anti-captcha.com/createTask
        
PHP
          <?php

//git clone git@github.com:AdminAnticaptcha/anticaptcha-php.git

include("anticaptcha.php");
include("imagetotext.php");

$api = new ImageToText();

//your anti-captcha.com account key
$api->setKey("YOUR_API_KEY_HERE");

//setting file
$api->setFile("captcha.jpg");

//create task in API
if (!$api->createTask()) {
    echo "API v2 send failed - ".$api->getErrorMessage()."\n";
    exit;
}

$taskId = $api->getTaskId();

if (!$api->waitForResult()) {
    echo "could not solve captcha\n";
    echo $api->getErrorMessage()."\n";
} else {
    $captchaText    =   $api->getTaskSolution();
    echo "captcha text: $captchaText\n\n";
}
        
Python
          #pip3 install anticaptchaofficial

from anticaptchaofficial.imagecaptcha import *

solver = imagecaptcha()
solver.set_verbose(1)
solver.set_key("YOUR_API_KEY_HERE")

captcha_text = solver.solve_and_return_solution("captcha.jpeg")
if captcha_text != 0:
    print "captcha text "+captcha_text
else:
    print "task finished with error "+solver.error_code
        
NodeJS
          //npm -i @antiadmin/anticaptchaofficial
//https://github.com/AdminAnticaptcha/anticaptcha-npm

const ac = require("@antiadmin/anticaptchaofficial");
const fs = require('fs');

const captcha = fs.readFileSync('captcha.png', { encoding: 'base64' });

ac.setAPIKey('YOUR_API_KEY_HERE');
ac.solveImage(captcha, true)
    .then(text => console.log('captcha text: '+text))
    .catch(error => console.log('test received error '+error));
        
C#
          //git clone git@github.com:AdminAnticaptcha/anticaptcha-csharp

using System;
using Anticaptcha_example.Api;
using Anticaptcha_example.Helper;
using Newtonsoft.Json.Linq;

namespace Anticaptcha_example
{
    internal class Program
    {
        private static void Main() {

            DebugHelper.VerboseMode = true;

            var api = new ImageToText
            {
                ClientKey = "YOUR_API_KEY_HERE",
                FilePath = "captcha.jpg"
            };

            if (!api.CreateTask())
                DebugHelper.Out("API v2 send failed. " + api.ErrorMessage, DebugHelper.Type.Error);
            else if (!api.WaitForResult())
                DebugHelper.Out("Could not solve the captcha.", DebugHelper.Type.Error);
            else
                DebugHelper.Out("Result: " + api.GetTaskSolution().Text, DebugHelper.Type.Success);

        }
    }
}

        
Java
          //git clone git@github.com:AdminAnticaptcha/anticaptcha-java.git

package com.anti_captcha;

import com.anti_captcha.Api.ImageToText;
import com.anti_captcha.Helper.DebugHelper;

import org.json.JSONArray;
import org.json.JSONException;
import org.json.JSONObject;

import java.net.MalformedURLException;
import java.net.URL;
import java.util.Iterator;
import java.util.concurrent.ThreadLocalRandom;

public class Main {

    public static void main(String[] args) throws InterruptedException, MalformedURLException, JSONException {
        DebugHelper.setVerboseMode(true);

        ImageToText api = new ImageToText();
        api.setClientKey("YOUR_API_KEY_HERE");
        api.setFilePath("captcha.jpg");

        if (!api.createTask()) {
            DebugHelper.out(
                    "API v2 send failed. " + api.getErrorMessage(),
                    DebugHelper.Type.ERROR
            );
        } else if (!api.waitForResult()) {
            DebugHelper.out("Could not solve the captcha.", DebugHelper.Type.ERROR);
        } else {
            DebugHelper.out("Result: " + api.getTaskSolution().getText(), DebugHelper.Type.SUCCESS);
        }
    }

}
        

Antwort-Beispiel

JSON ohne Fehler
          {
    "errorId": 0,
    "taskId": 7654321
}
        
JSON mit Fehler
          {
    "errorId": 1,
    "errorCode": "ERROR_KEY_DOES_NOT_EXIST",
    "errorDescription": "Account authorization key not found in the system"
}
        

Lösung abrufen

Verwenden Sie die Methode getTaskResult, um die Lösung anzufordern. Geben Sie dem Arbeiter etwas Zeit, ca. 5 Sekunden, bevor Sie die Anfrage stellen. Falls der Arbeiter noch beschäftigt ist, warten Sie weitere 3 Sekunden.

Aufgabenlösungsobjekt

Wert Art Zweck
text String Text aus Bild-Captcha
url String Webadresse des Captchas, wo wir es für die nächsten 24 Stunden speichern. Danach wird es entfernt.

Antwort-Beispiel

JSON ohne Fehler
          {
    "errorId":0,
    "status":"ready",
    "solution":
    {
        "text":"deditur",
        "url":"http://61.39.233.233/1/147220556452507.jpg"
    },
    "cost":"0.000700",
    "ip":"46.98.54.221",
    "createTime":1472205564,
    "endTime":1472205570,
    "solveCount":"0"
}