ImageToTextTask : résoudre un captcha d'image
Publiez un corps d'image et recevez du texte de celui-ci. Le texte ne peut contenir que des chiffres, des lettres, des caractères spéciaux et un espace. Les animations GIF sont prises en charge, jusqu'à 500 Ko. Captchas personnalisés comme "trouvez un chat sur cet ensemble d'images et entrez son numéro" ne sont pas pris en charge.
Objet de tâche
Propriété | Type | Obligatoire | Valeur par défaut | Objectif |
---|---|---|---|---|
type | String | Yes | ImageToTextTask | Définit un type de tâche. |
body | String | Yes | Corps du fichier encodé en base64. Assurez-vous de l'envoyer sans saut de ligne. N'incluez pas 'data:image/png,' ou des balises similaires, uniquement base64 propre! | |
phrase | Boolean | Non | false | faux - aucune exigence vrai - oblige le travailleur à saisir une réponse avec au moins un "espace". S'il n'y a pas d'espace, ils sauteront la tâche, alors utilisez-la avec prudence. |
case | Boolean | Non | true | faux - aucune exigence vrai - le travailleur verra une marque spéciale indiquant que la réponse doit être saisie en respectant la casse. |
numeric | Integer | Non | 0 | 0 - aucune exigence 1 - seuls les nombres sont autorisés 2 - toutes les lettres sont autorisées sauf les chiffres |
math | Boolean | Non | false | faux - aucune exigence vrai - le travailleur verra une marque spéciale indiquant que la réponse doit être calculée |
minLength | Integer | Non | 0 | 0 - aucune exigence >1 - définit la longueur minimale de la réponse |
maxLength | Integer | Non | 0 | 0 - aucune exigence >1 - définit la longueur maximale de la réponse |
comment | String | Non | Commentaire supplémentaire pour les travailleurs comme "entrer des lettres de couleur rouge". Le résultat n'est pas garanti et dépend entièrement d'un travailleur. | |
websiteURL | String | Non | Paramètre facultatif pour distinguer la source des captchas d'image dans les statistiques de dépenses. |
Exemple de demande
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 install @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);
}
}
}
Exemple de réponse
JSON sans erreurs
{
"errorId": 0,
"taskId": 7654321
}
JSON avec une erreur
{
"errorId": 1,
"errorCode": "ERROR_KEY_DOES_NOT_EXIST",
"errorDescription": "Account authorization key not found in the system"
}
Récupérer la solution
Utilisez la méthode getTaskResult demander la solution. Donnez du temps à un travailleur, par exemple 5 secondes, avant de faire la première demande. Si le travailleur est toujours occupé, réessayez dans 3 secondes.
Objet de solution de tâche
Propriété | Type | Objectif |
---|---|---|
text | String | Texte de l'image captcha |
url | String | Adresse Web du captcha où nous le stockerons pour les prochaines 24 heures. Il est retiré par la suite. |
Exemple de réponse
JSON sans erreurs
{
"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"
}