Índice
- Bibliotecas de clientes API
- Solução de recaptcha legado/desatualizado por meio de coordenadas ou API do grupo de imagem
- API de Coordenadas
- Grupo de Imagens do Recaptcha
- Exemplos de usos do código
Faça o download dos códigos exemplos usando a versão programa do API:
Suporte de API de recaptcha legado/desatualizado
Qual é o "Legacy/Recaptcha/Nocaptcha" desatualizado?
Existe um Recaptcha Legacy/Recaptcha desatualizado que normalmente exige que o usuário identifique e clique em determinadas imagens. Eles não são confundidos com a recaptchas de palavra/número tradicional (aqueles não têm imagens).
Para sua conveniência, implementamos suporte para a API Recaptcha Legacy/Desatualizada. Se o seu software funciona com ela e suporta a configuração mínima, você deverá ser capaz de decodificar captchas usando Death by Captcha em pouco tempo.
Fornecemos dois tipos diferentes de API Recaptcha Legacy/Desatualizado:
- Coordinates API: Provido de uma foto, o API mostra grupos de coordenadas para clicar.
- Image Group API: Provido de um grupo de imagens (codificada em base64), o API mostra os index de imagens para clicar.
Preço
No momento, o preço é 3.99/1k de new reCAPTCHA resolvidos corretamente. Não serão cobradas as imagens reportadas como não solucionadas. Note que essa precificação se aplica para imagens novas reCAPTCHA/noCAPTCHA, por isso, apenas clientes utilizando esse API específico serão cobrados com as taxas mencionadas acima
Restrições de upload de imagens.
O limite de tamanho de imagem é limitado em 180 KB. Quando a imagem for codificada em base64, o tamanho da imagem deverá ser inferior à 120 KB. Os formatos de imagens com suporte são JPG, PNG, GIF e BMP.
Perguntas Frequentes do API de Coordenadas:
- Qual o URL do API de Coordenadas?
-
Para utilizar o API de Coordenadas, você deverá enviar a Solicitação HTTP POST para: http://api.dbcapi.me/api/captcha
- Quais são os parâmetros para o API de Coordenadas?
-
Estes são:
- username: Seu nome de usuário da sua conta DBC
- password: Sua senha da sua conta DBC
- captchafile: Um conteúdo de arquivo codificado em Base64 ou multipart com uma captura de tela válida de Recaptcha Legacy/Desatualizado
- type=2: O Tipo 2 especifica que isso é um legado/recaptcha desatualizado API de Coordenadas
- Qual a resposta do API Coordenadas?
-
captcha: id da captcha fornecida, caso o campo de texto esteja em branco, terá que ser feito uma consulta da url http://api.dbcapi.me/api/captcha/captcha_id até que se torne disponível
is_correct: (0 ou 1) especificando se a captcha foi marcada como incorreta ou ilegível
text: uma sub-lista tipo json, com todas as coordenadas (x, y) para clicar apropriadamente, por exemplo:
[[23.21, 82.11]]
onde a coordenada X é 23.21 e a coordenada Y é 82.11
Utilizando o API DE COORDENADAS com programas API:
/**
* Death by Captcha PHP API newrecaptcha_coordinates usage example
*
* @package DBCAPI
* @subpackage PHP
*/
/**
* DBC API clients
*/
require_once '../deathbycaptcha.php';
$username = "username"; // DBC account username
$password = "password"; // DBC account password
$token_from_panel = "your-token-from-panel"; // DBC account authtoken
// Use DeathByCaptcha_SocketClient() class if you want to use SOCKET API.
$client = new DeathByCaptcha_HttpClient($username, $password);
$client->is_verbose = true;
// To use token the first parameter must be authtoken.
// $client = new DeathByCaptcha_HttpClient("authtoken", $token_from_panel);
echo "Your balance is {$client->balance} US cents\n";
$captcha_filename = "../images/test.jpg"; // your image here
$extra = [
'type' => 2 // captcha_type
];
// Put your CAPTCHA image file name, file resource, or vector of bytes,
// and optional solving timeout (in seconds) here; you'll get CAPTCHA
// details array on success.
if ($captcha = $client->decode($captcha_filename, $extra)) {
echo "CAPTCHA {$captcha['captcha']} uploaded\n";
sleep(DeathByCaptcha_Client::DEFAULT_TIMEOUT);
// Poll for CAPTCHA coordinates:
if ($text = $client->get_text($captcha['captcha'])) {
echo "CAPTCHA {$captcha['captcha']} solved: {$text}\n";
// Report an incorrectly solved CAPTCHA.
// Make sure the CAPTCHA was in fact incorrectly solved!
//$client->report($captcha['captcha']);
}
}
# new recaptcha coordinates
import deathbycaptcha
# Put your DBC account username and password here.
username = "user"
password = "password"
# you can use authtoken instead of user/password combination
# activate and get the authtoken from DBC users panel
authtoken = "authtoken"
# to use socket client
# client = deathbycaptcha.SocketClient(username, password)
# to use authtoken
# client = deathbycaptcha.SocketClient(username, password, authtoken)
client = deathbycaptcha.HttpClient(username, password)
captcha_file = '../images/test.jpg' # image
try:
balance = client.get_balance()
print(balance)
# Put your CAPTCHA file name or file-like object, and optional
# solving timeout (in seconds) here:
captcha = client.decode(captcha_file, type=2)
if captcha:
# The CAPTCHA was solved; captcha["captcha"] item holds its
# numeric ID, and captcha["text"] item its list of "coordinates".
print("CAPTCHA %s solved: %s" % (captcha["captcha"],
captcha["text"]))
if '': # check if the CAPTCHA was incorrectly solved
client.report(captcha["captcha"])
except deathbycaptcha.AccessDeniedException:
# Access to DBC API denied, check your credentials and/or balance
print("error: Access to DBC API denied, check your credentials
and/or balance")
import com.DeathByCaptcha.AccessDeniedException;
import com.DeathByCaptcha.Client;
import com.DeathByCaptcha.HttpClient;
import com.DeathByCaptcha.SocketClient;
import com.DeathByCaptcha.Captcha;
import java.io.IOException;
class ExampleRecaptchaCoordinates {
public static void main(String[] args)
throws Exception {
// Put your DBC username & password or authtoken here:
String username = "your_username_here";
String password = "your_password_here";
String authtoken = "your_authtoken_here";
String filename = "src/images/test.jpg";
/* Death By Captcha Socket Client
Client client = (Client) (new SocketClient(username, password));
Death By Captcha http Client */
Client client = (Client) (new HttpClient(username, password));
client.isVerbose = true;
/* Using authtoken
Client client = (Client) new HttpClient(authtoken); */
try {
try {
System.out.println("Your balance is " + client.getBalance() + " US cents");
} catch (IOException e) {
System.out.println("Failed fetching balance: " + e.toString());
return;
}
Captcha captcha = null;
try {
/* Upload a CAPTCHA and poll for its status with 120 seconds timeout.
Put you CAPTCHA image file name, file object, input stream, or
vector of bytes, and solving timeout (in seconds) if 0 the default value take place.
please note we are specifying type=2 in the second argument */
captcha = client.decode(filename, 2, 0);
} catch (IOException e) {
System.out.println("Failed uploading CAPTCHA");
return;
}
if (null != captcha) {
System.out.println("CAPTCHA " + captcha.id + " solved: " + captcha.text);
/* Report incorrectly solved CAPTCHA if necessary.
Make sure you've checked if the CAPTCHA was in fact incorrectly
solved, or else you might get banned as abuser. */
/*try {
if (client.report(captcha)) {
System.out.println("Reported as incorrectly solved");
} else {
System.out.println("Failed reporting incorrectly solved CAPTCHA");
}
} catch (IOException e) {
System.out.println("Failed reporting incorrectly solved CAPTCHA: " + e.toString());
}*/
} else {
System.out.println("Failed solving CAPTCHA");
}
} catch (com.DeathByCaptcha.Exception e) {
System.out.println(e);
}
}
}
// new recaptcha coordinates
using System;
using System.Collections;
using DeathByCaptcha;
namespace DBC_Examples.examples
{
public class RecaptchaCoordinatesExample
{
public void Main()
{
// Put your DeathByCaptcha account username and password here.
string username = "your username";
string password = "your password";
// string token_from_panel = "your-token-from-panel";
string filename = "./images/test.jpg";
/* Death By Captcha Socket Client
Client client = (Client) new SocketClient(username, password);
Death By Captcha http Client */
Client client = (Client) new HttpClient(username, password);
/* To use token authentication the first parameter must be "authtoken".
Client client = (Client) new HttpClient("authtoken", token_from_panel); */
try
{
double balance = client.GetBalance();
/* Put your CAPTCHA file name, or file object,
or arbitrary stream, or an array of bytes,
and optional solving timeout (in seconds) here:
*/
Captcha captcha = client.Decode(filename, 0, new Hashtable()
{
{"type", 2}
});
if (null != captcha)
{
/* The CAPTCHA was solved; captcha.Id property holds
its numeric ID, and captcha.Text holds its text. */
Console.WriteLine("CAPTCHA {0} solved: {1}", captcha.Id,
captcha.Text);
// if ( /* check if the CAPTCHA was incorrectly solved */)
//{
//client.Report(captcha);
//}
}
}
catch (AccessDeniedException e)
{
/* Access to DBC API denied, check your credentials and/or balance */
Console.WriteLine("<<< catch : " + e.ToString());
}
}
}
}
Imports DeathByCaptcha
Public Class NewRecaptchaCoordinates
Sub Main(args As String())
' Put your DBC username & password or authtoken here:
Dim username = "username"
Dim password = "password"
Dim token_from_panel = "your-token-from-panel"
' DBC Socket API client
' Dim client As New SocketClient(username, password)
' DBC HTTP API client
Dim client As New HttpClient(username, password)
' To use token auth the first parameter must be "authtoken"
' Dim client As New HttpClient("authtoken", token_from_panel)
Dim filename = "./images/test.jpg"
Console.WriteLine(String.Format("Your balance is {0,2:f} US cents",
client.Balance))
' Create the extra data with type
Dim extraData as new Hashtable()
extraData.Add("type", 2)
' Upload a CAPTCHA and poll for its status. Put the Token CAPTCHA
' Json payload, CAPTCHA type and desired solving timeout (in seconds)
' here. If solved, you'll receive a DeathByCaptcha.Captcha object.
Dim captcha As Captcha = client.Decode(filename,
DeathByCaptcha.Client.DefaultTimeout,
extraData)
If captcha IsNot Nothing Then
Console.WriteLine(String.Format("CAPTCHA {0:d} solved: {1}", captcha.Id,
captcha.Text))
' Report an incorrectly solved CAPTCHA.
' Make sure the CAPTCHA was in fact incorrectly solved, do not
' just report it at random, or you might be banned as abuser.
' If client.Report(captcha) Then
' Console.WriteLine("Reported as incorrectly solved")
' Else
' Console.WriteLine("Failed reporting as incorrectly solved")
' End If
End If
End Sub
End Class
' this script uses DeCaptcher API, to use this API first we need to opt-in our user in the following URL
' http://deathbycaptcha.com/user/api/decaptcher
' Is recomended to read the FAQ in that page
' this script can use authentication token instead of username/password combination
' to use this API with authentication token, first we need enable token authentication on users panel
' when using authentication token the username must be the keyword authtoken
' and the password is the authentication token from users panel
VERSION BUILD=844
URL GOTO=http://api.dbcapi.me/decaptcher?function=picture2&print_format=html
TAG POS=1 TYPE=INPUT:TEXT FORM=ACTION:http://api.dbcapi.me/decaptcher ATTR=NAME:username
CONTENT={{YOUR_DBC_USERNAME}}
TAG POS=1 TYPE=INPUT:TEXT FORM=ACTION:http://api.dbcapi.me/decaptcher ATTR=NAME:password
CONTENT={{YOUR_DBC_PASSWORD}}
TAG POS=1 TYPE=INPUT:FILE FORM=ACTION:http://api.dbcapi.me/decaptcher ATTR=NAME:pict
CONTENT={{PATH_TO_FILE}}
TAG POS=1 TYPE=INPUT:TEXT FORM=ACTION:http://api.dbcapi.me/decaptcher ATTR=NAME:pict_type CONTENT=2
TAG POS=1 TYPE=INPUT:SUBMIT FORM=ACTION:http://api.dbcapi.me/decaptcher ATTR=VALUE:Send
TAG POS=6 TYPE=TD ATTR=* EXTRACT=TXT
SET !VAR1 {{!EXTRACT}}
/*
* Death by Captcha Node.js API newrecaptcha_coordinates usage example
*/
const dbc = require('../deathbycaptcha');
const username = 'username'; // DBC account username
const password = 'password'; // DBC account password
const token_from_panel = 'your-token-from-panel'; // DBC account authtoken
const captcha_file = '../images/test.jpg'; // Image filename src
// Death By Captcha Socket Client
// const client = new dbc.SocketClient(username, password);
// Death By Captcha http Client
const client = new dbc.HttpClient(username, password);
// To use token authentication the first parameter must be "authtoken"
// const client = new dbc.HttpClient("authtoken", token_from_panel);
// Get user balance
client.get_balance((balance) => {
console.log(balance);
});
// Solve captcha with type 2 extra argument
client.decode({captcha: captcha_file, extra: {type: 2}}, (captcha) => {
if (captcha) {
console.log('Captcha ' + captcha['captcha'] + ' solved: ' + captcha['text']);
// Report an incorrectly solved CAPTCHA.
// Make sure the CAPTCHA was in fact incorrectly solved!
// client.report(captcha['captcha'], (result) => {
// console.log('Report status: ' + result);
// });
}
});
FAQ (perguntas frequentes) do API de Grupo de Imagens:
- Qual é o URL do API de Grupo de Imagens?
-
Para utilizar o API de Grupo de Imagens você terá que enviar uma Solicitação de HTTP POST para http://api.dbcapi.me/api/captcha
- Quais são os parâmetros de POST para o API de Grupo de Imagens?
-
Estes são:
- username: Seu nome de usuário da sua conta DBC
- password: Sua senha da sua conta DBC
- captchafile: O conteúdo de arquivo/imagem codificado em BASE64 com o Recaptcha legado/válido desatualizado.
- banner: a imagem banner codificada em Base64 (a imagem exemplo que aparece na parte superior direita)
- banner_text: o texto do banner (o texto que aparece na parte superior esquerda)
- type=3: O Tipo 3 especifica que isso é um legado/recaptcha desatualizado API do Grupo de Imagem
- grid: Parâmetros opcionais de grid que especificam em que grid as imagens individuais estão alinhadas (string, largura+”x”+altura, exemplo: “2x4”, se as imagens estão alinhadas com 4 colunas e 2 imagens em cada. Caso não for especificada, o dbc tentará detectar automaticamente a grid.
- Qual a resposta do API de Grupo de Imagens?
-
captcha: id da captcha fornecida, caso o campo de texto esteja em branco, terá que ser feito uma consulta da url http://api.dbcapi.me/api/captcha/captcha_id até que se torne disponível
is_correct:(0 ou 1) especificando se a captcha foi marcada como incorreta ou ilegível
text: uma sub-lista tipo json do index para cada imagem que deve ser clicada. Por exemplo:
[1, 4, 6]
as imagens clicadas devem ser a primeira, a quarta e a sexta, contando da esquerda para a direita e de cima para baixo
o API DE GRUPO DE IMAGENS com programas API:
# new recaptcha image group
import deathbycaptcha
# Put your DBC account username and password here.
username = "username"
password = "password"
# you can use authtoken instead of user/password combination
# activate and get the authtoken from DBC users panel
authtoken = "authtoken"
# to use socket client
# client = deathbycaptcha.SocketClient(username, password)
# to use authtoken
# client = deathbycaptcha.SocketClient(username, password, authtoken)
client = deathbycaptcha.HttpClient(username, password)
captcha_file = '../images/test2.jpg' # image
banner = "../images/banner.jpg" # image banner
banner_text = "select all pizza:" # banner text
try:
balance = client.get_balance()
print(balance)
# Put your CAPTCHA file name or file-like object, and optional
# solving timeout (in seconds) here:
captcha = client.decode(captcha_file, type=3, banner=banner,
banner_text=banner_text)
# you can supply optional `grid` argument to decode() call, with a
# string like 3x3 or 2x4, defining what grid individual images were
# located at example:
# captcha = client.decode(captcha_file, type=3, banner=banner,
# banner_text=banner_text, grid="2x4")
# see 2x4.png example image to have an idea what that images look like
# If you wont supply `grid` argument, dbc will attempt to autodetect
# the grid
if captcha:
# The CAPTCHA was solved; captcha["captcha"] item holds its
# numeric ID, and captcha["text"] is a json-like list of
# the index for each image that should be clicked.
print("CAPTCHA %s solved: %s" % (captcha["captcha"],
captcha["text"]))
if '': # check if the CAPTCHA was incorrectly solved
client.report(captcha["captcha"])
except deathbycaptcha.AccessDeniedException:
# Access to DBC API denied, check your credentials and/or balance
print("error: Access to DBC API denied, check your credentials
and/or balance")
import com.DeathByCaptcha.AccessDeniedException;
import com.DeathByCaptcha.Client;
import com.DeathByCaptcha.HttpClient;
import com.DeathByCaptcha.SocketClient;
import com.DeathByCaptcha.Captcha;
import java.io.IOException;
class ExampleRecaptchaImageGroup {
public static void main(String[] args)
throws Exception {
// Put your DBC username & password or authtoken here:
String username = "your_username_here";
String password = "your_password_here";
String authtoken = "your_authtoken_here";
String filename = "src/images/test2.jpg";
String banner = "src/images/banner.jpg";
String banner_text = "choose all pizza:";
/* Death By Captcha Socket Client
Client client = (Client) (new SocketClient(username, password));
Death By Captcha http Client */
Client client = (Client) (new HttpClient(username, password));
client.isVerbose = true;
/* Using authtoken
Client client = (Client) new HttpClient(authtoken); */
try {
try {
System.out.println("Your balance is " + client.getBalance()
+ " US cents");
} catch (IOException e) {
System.out.println("Failed fetching balance: "
+ e.toString());
return;
}
Captcha captcha = null;
try {
/* Upload a CAPTCHA and poll for its status with 120
seconds timeout. Put you CAPTCHA image file name,
file object, input stream, or vector of bytes, and
solving timeout (in seconds) if 0 the default value
take place. please note we are specifying banner,
banner_test and type=3 in the second argument */
captcha = client.decode(filename, 3, banner,
banner_text, 0);
/* you can supply optional `grid` argument to decode()
call, with a string like 3x3 or 2x4, defining what
grid individual images were located at
example:
captcha = client.decode(filename, 3, banner,
banner_text, "2x4", 0);
see 2x4.png example image to have an idea what that images
look like. If you wont supply `grid` argument, dbc will
attempt to autodetect the grid */
} catch (IOException e) {
System.out.println("Failed uploading CAPTCHA");
return;
}
if (null != captcha) {
System.out.println("CAPTCHA " + captcha.id + " solved: "
+ captcha.text);
/* Report incorrectly solved CAPTCHA if necessary.
Make sure you've checked if the CAPTCHA was in fact
incorrectly solved, or else you might get banned
as abuser. */
/*try {
if (client.report(captcha)) {
System.out.println("Reported as incorrectly solved");
} else {
System.out.println("Failed reporting incorrectly
solved CAPTCHA");
}
} catch (IOException e) {
System.out.println("Reporting incorrectly solved CAPTCHA:"
+ e.toString());
}*/
} else {
System.out.println("Failed solving CAPTCHA");
}
} catch (com.DeathByCaptcha.Exception e) {
System.out.println(e);
}
}
}
// new recaptcha image group
using System;
using System.Collections;
using DeathByCaptcha;
namespace DBC_Examples.examples
{
public class RecaptchaImageGroupExample
{
public void Main()
{
// Put your DeathByCaptcha account username and password here.
string username = "your username";
string password = "your password";
// string token_from_panel = "your-token-from-panel";
string filename = "./images/test2.jpg";
string banner = "./images/banner.jpg";
string banner_text = "choose all pizza:";
/* Death By Captcha Socket Client
Client client = (Client) new SocketClient(username, password);
Death By Captcha http Client */
Client client = (Client) new HttpClient(username, password);
/* To use token authentication the first parameter must be "authtoken".
Client client = (Client) new HttpClient("authtoken", token_from_panel); */
try
{
double balance = client.GetBalance();
/* Put your CAPTCHA file name, or file object,
or arbitrary stream, or an array of bytes,
and optional solving timeout (in seconds) here:
*/
Captcha captcha = client.Decode(filename, 0, new Hashtable()
{
{"type", 3},
{"banner_text", banner_text},
{"banner", banner}
/*
- If you want to specify grid data: {"grid", "4x2"}
- If you wont supply grid parameter, dbc would attempt to
autodetect proper grid.*/
});
if (null != captcha)
{
/* The CAPTCHA was solved; captcha.Id property holds
its numeric ID, and captcha.Text holds its text. */
Console.WriteLine("CAPTCHA {0} solved: {1}", captcha.Id,
captcha.Text);
// if ( /* check if the CAPTCHA was incorrectly solved */)
//{
//client.Report(captcha);
//}
}
}
catch (AccessDeniedException e)
{
/* Access to DBC API denied, check your credentials and/or balance */
Console.WriteLine("<<< catch : " + e.ToString());
}
}
}
}
Imports DeathByCaptcha
Public Class NewRecaptchaImageGroup
Sub Main(args As String())
' Put your DBC username & password or authtoken here:
Dim username = "username"
Dim password = "password"
Dim token_from_panel = "your-token-from-panel"
' DBC Socket API client
' Dim client As New SocketClient(username, password)
' DBC HTTP API client
Dim client As New HttpClient(username, password)
' To use token auth the first parameter must be "authtoken"
' Dim client As New HttpClient("authtoken", token_from_panel)
Dim filename = "./images/test2.jpg"
Dim banner = "./images/banner.jpg"
Dim banner_text = "choose all pizza:"
Console.WriteLine(String.Format("Your balance is {0,2:f} US cents",
client.Balance))
' Create the extra data with type
Dim extraData as new Hashtable()
extraData.Add("type", 3)
extraData.Add("banner", banner)
extraData.Add("banner_text", banner_text)
' If you want to specify grid data: extraData.Add("grid", "4x4")
' If you wont supply grid parameter, dbc would attempt to autodetect
' proper grid.
' Upload a CAPTCHA and poll for its status. Put the Token CAPTCHA
' Json payload, CAPTCHA type and desired solving timeout (in seconds)
' here. If solved, you'll receive a DeathByCaptcha.Captcha object.
Dim captcha As Captcha = client.Decode(filename,
DeathByCaptcha.Client.DefaultTimeout,
extraData)
If captcha IsNot Nothing Then
Console.WriteLine(String.Format("CAPTCHA {0:d} solved: {1}", captcha.Id,
captcha.Text))
' Report an incorrectly solved CAPTCHA.
' Make sure the CAPTCHA was in fact incorrectly solved, do not
' just report it at random, or you might be banned as abuser.
' If client.Report(captcha) Then
' Console.WriteLine("Reported as incorrectly solved")
' Else
' Console.WriteLine("Failed reporting as incorrectly solved")
' End If
End If
End Sub
End Class
' this script uses DeCaptcher API, to use this API first we need to opt-in our user in the following URL
' http://deathbycaptcha.com/user/api/decaptcher
' Is recomended to read the FAQ in that page
' this script can use authentication token instead of username/password combination
' to use this API with authentication token, first we need enable token authentication on users panel
' when using authentication token the username must be the keyword authtoken
' and the password is the authentication token from users panel
VERSION BUILD=844
URL GOTO=http://api.dbcapi.me/decaptcher?function=imagegroup&print_format=html
TAG POS=1 TYPE=INPUT:TEXT FORM=ACTION:http://api.dbcapi.me/decaptcher ATTR=NAME:username
CONTENT={{YOUR_DBC_USERNAME}}
TAG POS=1 TYPE=INPUT:TEXT FORM=ACTION:http://api.dbcapi.me/decaptcher ATTR=NAME:password
CONTENT={{YOUR_DBC_PASSWORD}}
TAG POS=1 TYPE=INPUT:FILE FORM=ACTION:http://api.dbcapi.me/decaptcher ATTR=NAME:pict
CONTENT={{PATH_TO_MAIN_IMAGE}}
TAG POS=1 TYPE=INPUT:FILE FORM=ACTION:http://api.dbcapi.me/decaptcher ATTR=NAME:banner
CONTENT={{PATH_TO_BANNER_IMAGE}}
TAG POS=1 TYPE=INPUT:TEXT FORM=ACTION:http://api.dbcapi.me/decaptcher ATTR=NAME:banner_text
CONTENT={{BANNER_TEXT}}
TAG POS=1 TYPE=INPUT:TEXT FORM=ACTION:http://api.dbcapi.me/decaptcher ATTR=NAME:grid CONTENT={{GRID}}
TAG POS=1 TYPE=INPUT:SUBMIT FORM=ACTION:http://api.dbcapi.me/decaptcher ATTR=VALUE:Send
TAG POS=6 TYPE=TD ATTR=* EXTRACT=TXT
SET !VAR1 {{!EXTRACT}}
/*
* Death by Captcha Node.js API newrecaptcha_image_groups usage example
*/
const dbc = require('../deathbycaptcha');
const username = 'username'; // DBC account username
const password = 'password'; // DBC account password
const token_from_panel = 'your-token-from-panel'; // DBC account authtoken
const captcha_file = '../images/test2.jpg'; // Captcha image filename src
const banner = '../images/banner.jpg'; // Banner image filename src
const banner_text = 'select all pizza:'; // Banner text
// Death By Captcha Socket Client
// const client = new dbc.SocketClient(username, password);
// Death By Captcha http Client
const client = new dbc.HttpClient(username, password);
// To use token authentication the first parameter must be "authtoken"
// const client = new dbc.HttpClient("authtoken", token_from_panel);
// Get user balance
client.get_balance((balance) => {
console.log(balance);
});
// Solve captcha with type 3, banner & banner_text extra arguments
client.decode({captcha: captcha_file, extra: {type: 3, banner: banner,
banner_text: banner_text}
}, (captcha) => {
// you can supply optional `grid` argument to decode() call, with a
// string like 3x3 or 2x4, defining what grid individual images were located at
// example:
// captcha = client.decode({captcha: captcha_file,
// extra: {type: 3, banner: banner,
// banner_text: banner_text, grid: "2x4"},
// (captcha) => {
// ...
// });
// see 2x4.png example image to have an idea what that images look like
// If you wont supply `grid` argument, dbc will attempt to autodetect the grid
if (captcha) {
console.log('Captcha ' + captcha['captcha'] + ' solved: ' + captcha['text']);
// Report an incorrectly solved CAPTCHA.
// Make sure the CAPTCHA was in fact incorrectly solved!
// client.report(captcha['captcha'], (result) => {
// console.log('Report status: ' + result);
// });
}
});
Exemplo de uso de códigos para API DE COORDENADAS e API DE GRUPO DE IMAGENS:
1) Envie sua imagem:
Note que usamos type=”2” para API DE COORDENADAS CAPTCHA.
curl --header 'Expect: ' -F username=your_username_here \
-F password=your_password_here \
-F captchafile=@'your_captcha_filename.jpg' \
-F type='2' http://api.dbcapi.me/api/captcha
OU:
Note que usamos type=”3” para API DE GRUPO DE IMAGENS CAPTCHA.
curl --header 'Expect: ' -F username=your_username_here \
-F password=your_password_here \
-F captchafile=@'your_captcha_filename.jpg' \
-F banner=@'your_banner_filename.jpg' \
-F banner_text=banner_text_here \
-F type='3' http://api.dbcapi.me/api/captcha
Ou, se você está estipulando a informação da grid (altura x largura). Nesse exemplo, uma grid 4x2 foi usada, mas, você deverá especificar de acordo com a imagem carregada. Caso não for especificada, o dbc tentará detectar automaticamente a grid.
curl --header 'Expect: ' -F username=your_username_here \
-F password=your_password_here \
-F captchafile=@'your_captcha_filename.jpg' \
-F banner=@'your_banner_filename.jpg' \
-F banner_text=banner_text_here \
-F type='3' http://api.dbcapi.me/api/captcha
-F grid=4x2
O resultado será uma informação em url codificada, incluindo a respectiva CAPTCHA_ID:
'status=0&captcha=CAPTCHA_ID&text=&is_correct=1'
2) Adquirindo as coordenadas captcha: use a CAPTCHA_ID obtida e faça uma solicitação da seguinte forma:
curl -H "Accept: application/json" \
http://api.dbcapi.me/api/captcha/CAPTCHA_ID
O resultado será um json-string onde o campo “texto” irá incluir as respectivas coordenadas:
'{"status": 0, "captcha": 2911096,
"is_correct": true, "text": "[[57,240],[156,335]"}'