ImageToTextTask : maglutas ng imaheng captcha
Mag-post ng katawang imahe at tumanggap ng teksto mula rito. Ang teksto ay maaari lamang mayroong mga numero, mga letra, mga espesyal na karakter at espasyo. Mga GIF na animasyon ay sinusuportahan, hanggang 500kb. Mga pasadyang captcha gaya ng "find a cat on this image set and enter its number" ay hindi suportado.
Bagay ng gawain
Katangian | Uri | Kinakailangan | Default na halaga | Layunin |
---|---|---|---|---|
type | String | Oo | ImageToTextTask | Tinutukoy ang uri ng gawain. |
body | String | Oo | Ang katawan ng file ay naka-encode sa base64. Siguraduhin na ipadala ito ng walang mga line break. Huwag isama ang 'data:image/png,' o mga kaparehong tag, malinis na base64 lamang! | |
phrase | Boolean | Hindi | false | mali - walang mga kinakailangan tama - kinakailangan na ang manggagawa na mag-enter ng sagot na may kahit isang "space". Kapag walang espasyo, lalaktawan nila ang gawain, kaya gamitin ito ng may pag-iingat. |
case | Boolean | Hindi | true | mali - walang mga kinakailangan tama - ang manggagawa ay makakakita ng espesyal na marka na nagsasabi na ang sagot ay dapat na ma-enter na may pagkasensitibo sa case. |
numeric | Integer | Hindi | 0 | 0 - walang mga kinakailangan 1 - numero lamang ang pinapayagan 2 - kahit anong mga letra ang pinapayagan maliban sa mga numero |
math | Boolean | Hindi | false | mali - walang mga kinakailangan tama - ang manggagawa ay makakakita ng espesyal na marka na nagsasabi na ang sagot ay dapat na kalkulahin |
minLength | Integer | Hindi | 0 | 0 - walang mga kinakailangan >1 - tinutukoy ang pinakamaikling haba ng sagot |
maxLength | Integer | Hindi | 0 | 0 - walang mga kinakailangan >1 - tinutukoy ang pinakamahabang haba ng sagot |
comment | String | Hindi | Karagdagang komento para sa mga manggagagwa gaya ng "enter letters in red color". Ang resulta ay hindi garantisado at buong-buo na ang manggagawa ang bahala. | |
websiteURL | String | Hindi | Opsiyonal na parametro para makilala ang pinagmulan ng mga imaheng captcha sa estadistika ng paggastos. |
Halimbawa ng kahilingan
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);
}
}
}
Halimbawa ng tugon
JSON na walang mga error
{
"errorId": 0,
"taskId": 7654321
}
JSON na may error
{
"errorId": 1,
"errorCode": "ERROR_KEY_DOES_NOT_EXIST",
"errorDescription": "Account authorization key not found in the system"
}
Kunin ang solusyon
Gamitin ang metodong getTaskResult para hilingin ang solusyon. Bigyan ang manggagawa ng ilang oras, gaya ng 5 segundo, bago gumawa ng unang kahilingan. Kapag ang manggagawa ay abala pa, subukang muli sa loob ng 3 segundo.
Bagay ng solusyon ng gawain
Katangian | Uri | Layunin |
---|---|---|
text | String | Teksto mula sa imaheng captcha |
url | String | Web adres ng captcha kung saan namin ito itatago sa susunod na 24 na oras. Ito ay aalisin pagkatapos. |
Halimbawa ng tugon
JSON na walang mga error
{
"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"
}