Home Documentazione Tutorial Accedi
Menù della documentazione

ImageToTextTask : risolve un captcha grafico

Invia un'immagine e ricevi il testo. Il testo può contenere soltanto numeri, lettere, caratteri speciali e uno spazio. Le animazioni GIF sono supportate, fino a 500kb. I captcha come "trova il gatto in queste immagini e inserisci il numero" non sono supportati.

Oggetto del task

Proprietà Tipo Richiesto Valore predefinito Scopo
type Stringa ImageToTextTask Indica un tipo di task.
body Stringa File body codificato in base64. Assicurati di inviarlo senza a capo. Non includere 'data:image/png,' o tag simili, soltanto il base64 pulito!
phrase Booleana No false false - nessun requisito
true - richiede che il lavoratore inserisca una risposta con almeno uno "spazio". Se non c'è lo spazio salteranno il task, quindi utilizzalo con cautela.
case Booleana No true false - nessun requisito
true - il lavoratore vedrà un segno speciale che dice che la risposta dev'essere inserita con maiuscole e minuscole.
numeric Numero intero No 0 0 - nessun requisito
1 - sono consentiti soltanto i numeri
2 - sono consentite tutte le lettere tranne i numeri
math Booleana No false false - nessun requisito
true - il lavoratore vedrà un segno speciale che dice che la risposta deve essere calcolata
minLength Numero intero No 0 0 - nessun requisito
>1 - definisce la lunghezza massima della risposta
maxLength Numero intero No 0 0 - nessun requisito
>1 - definisce la lunghezza massima della risposta
comment Stringa No Commento aggiuntivo per i lavoratori come "inserisci le lettere in rosso".
Il risultato non è garantito e dipende completamente dal lavoratore.
websiteURL Stringa No Parametro opzionale per distinguere la sorgente dei captcha grafici nelle statistiche di spesa.

Esempio di richiesta

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
        },
    "softId": 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");

//Specify softId to earn 10% commission with your app.
//Get your softId here: https://anti-captcha.com/clients/tools/devcenter
$api->setSoftId(0);

//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")

# Specify softId to earn 10% commission with your app.
# Get your softId here: https://anti-captcha.com/clients/tools/devcenter
solver.set_soft_id(0)

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');

//Specify softId to earn 10% commission with your app.
//Get your softId here: https://anti-captcha.com/clients/tools/devcenter
ac.setSoftId(0);

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",
                // Specify softId to earn 10% commission with your app.
                // Get your softId here:
                // https://anti-captcha.com/clients/tools/devcenter
                SoftId = 0
            };

            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");

        //Specify softId to earn 10% commission with your app.
        //Get your softId here: https://anti-captcha.com/clients/tools/devcenter
        api.setSoftId(0);

        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);
        }
    }

}
        

Esempio di risposta

JSON senza errori
          {
    "errorId": 0,
    "taskId": 7654321
}
        
JSON con un errore
          {
    "errorId": 1,
    "errorCode": "ERROR_KEY_DOES_NOT_EXIST",
    "errorDescription": "Account authorization key not found in the system"
}
        

Ottieni la soluzione

Usa il metodo getTaskResult per richiedere la soluzione. Dai un po' di tempo al lavoratore, ad esempio 5 secondi, prima di fare la prima richiesta. Se il lavoratore è ancora occupato riprova dopo 3 secondi.

Oggetto soluzione task

Proprietà Tipo Scopo
text Stringa Testo dal captcha grafico
url Stringa Indirizzo web del captcha dove verrà salvato per le prossime 24 ore. Dopodiché verrà rimosso.

Esempio di risposta

JSON senza errori
          {
    "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"
}