Índice
- Bibliotecas de clientes API
- Resolución de reCaptcha heredada/obsoleta a través de API de coordenadas o API de grupo de imágenes
- API de coordenadas
- Grupo de imágenes de Recaptcha
- Ejemplos de usos del código
Descargue los códigos de ejemplo basados en el cliente API:
Soporte heredado/obsoleto de la API de Recaptcha
¿Qué es "reCAPTCHA/noCAPTCHA" heredado/obsoleto?
Existen desafíos de recaptcha heredados/obsoletos que generalmente requieren que el usuario identifique y haga clic en ciertas imágenes. No deben confundirse con los recaptchas de palabras/números tradicionales (esas no tienen imágenes).
Para su conveniencia, hemos implementado el soporte para la API Legacy/Recaptcha obsoleta. Si su software funciona con él y admite una configuración mínima, debería poder decodificar Captchas usando Death by Captcha en poco tiempo.
Proporcionamos dos tipos diferentes de API de Recaptcha Legacy/Desactualizado:
- Coordinates API: Proporcionada una captura de pantalla, la API devuelve un grupo de coordenadas para hacer clic.
- Image Group API: Proporcionado un grupo de imágenes (codificadas en base64), la API devuelve los índices de las imágenes a hacer clic.
Precios
Por el momento, el precio es de $ 3.99/1k por nuevos desafíos de recaptcha resueltos correctamente. No se le facturará las imágenes reportadas como resueltas incorrectamente. Tenga en cuenta que este precio se aplica solo a las nuevas imágenes reCAPTCHA / noCAPTCHA, por lo que solo los clientes que usan esta API específica se cargarán por encima de la tarifa.
Restricciones de carga de imagen.
El tamaño del archivo de imagen se limita a menos de 180 kb . Cuando la imagen se codificará en Base64, el tamaño debe ser inferior a 120 kb . Los formatos de imagen compatibles son JPG, PNG, GIF y BMP .
Preguntas frecuentes de la API de Coordenadas:
- ¿Cuál es la URL de la API de las coordenadas?
-
Para usar la API de coordenadas deberá enviar una solicitud POST HTTP a http://api.dbcapi.me/api/captcha
- ¿Cuáles son los parámetros de POST para la API de coordenadas?
-
Estos son:
- username: El nombre de usuario de su cuenta de DBC
- password: La contraseña de su cuenta de DBC
- captchafile: Un contenido de archivo codificado en Base64 o multipart con una captura de pantalla válida de Legacy/Recaptcha obsoleta
- type=2: El Tipo 2 especifica que esto es una API de Coordenadas de Recaptcha Heredada/Obsoleta
- ¿Cuál es la respuesta de la API de coordenadas?
-
captcha: id del captcha proporcionado, si el campo text está vacío, deberá hacer un seguimiento de la url http://api.dbcapi.me/api/captcha/captcha_id hasta que esté disponible
is_correct: (0 o 1) especificando si el captcha fue marcado como incorrecto o ilegible
text: una lista anidada tipo JSON, con todas las coordenadas (x, y) para hacer clic en relación con la imagen, por ejemplo:
[[23.21, 82.11]]
donde la coordenada x es 23.21 y la coordenada y es 82.11
Uso de API de coordenadas con clientes 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);
// });
}
});
Preguntas frecuentes del API del grupo de imágenes :
- ¿Cuál es la URL de la API del grupo de imágenes?
-
Para usar la API del grupo de imágenes, deberá enviar una solicitud POST HTTP a http://api.dbcapi.me/api/captcha
- ¿Cuáles son los parámetros de POST para la API del grupo de imágenes?
-
Estos son:
- username: El nombre de usuario de su cuenta de DBC
- password: La contraseña de su cuenta de DBC
- captchafile: El contenido de archivo/imagen codificado en Base64 con el Recaptcha heredado/obsoleto válido.
- banner: La imagen de banner codificada Base64 (la imagen de ejemplo que aparece en la esquina superior derecha)
- banner_text: El texto del banner (el texto que aparece en la esquina superior izquierda)
- type=3: El Tipo 3 especifica que esto es una API de Grupo de Imágenes de Recaptcha heredada/obsoleta.
- grid: El parámetro de la cuadrícula opcional especifica qué imágenes individuales de cuadrícula del Captcha están alineadas con (cadena, ancho+"x"+altura, Ex.: "2x4", si las imágenes estan alineadas con 4 filas con 2 imágenes en cada una. Si no se suministra, DBC intentará detectar automáticamente la cuadrícula.
- ¿Cuál es la respuesta de la API del grupo de imágenes?
-
captcha: id del captcha proporcionado, si el campo text está vacío, deberá hacer un seguimiento de la url http://api.dbcapi.me/api/captcha/captcha_id hasta que esté disponible
is_correct:(0 o 1) especificando si el captcha fue marcado como incorrecto o ilegible
text: Una lista similar a JSON del índice para cada imagen que se debe hacer clic. Por ejemplo:
[1, 4, 6]
donde las imágenes que deben hacer clic son la primera, la cuarta y las sexta, contando de izquierda a derecha y hasta abajo
Uso de la API del grupo de imágenes con clientes 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);
// });
}
});
Ejemplos de código de uso para coordenadas API y API del grupo de imágenes:
1) Envía tu imagen:
Tenga en cuenta que estamos usando tipo = "2" para la 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
O:
Tenga en cuenta que estamos usando Type="3" para la API del grupo de imágenes 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
O, si está suministrando información de la cuadrícula (altura x ancho). En este ejemplo, se utiliza la cuadrícula 4x2, debe especificarla de acuerdo con la imagen cargada. Si no suministra el parámetro de la cuadrícula, DBC intentaría autodetectar la cuadrícula adecuada.
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
El resultado son datos URL_Encoded que incluyen el CAPTCHA_ID respectivo:
'status=0&captcha=CAPTCHA_ID&text=&is_correct=1'
2) Consultar las coordenadas de Captcha: tome el CAPTCHA_ID dado y haga una solicitud como esta:
curl -H "Accept: application/json" \
http://api.dbcapi.me/api/captcha/CAPTCHA_ID
El resultado es una cadena JSON donde el campo "text" incluye las coordinas respectivas:
'{"status": 0, "captcha": 2911096,
"is_correct": true, "text": "[[57,240],[156,335]"}'