Index
- API -клиент Libs
- Legacy/устаревшее решение RecAptcha через координаты или API Image Group
- Координаты API
- Группа изображений Recaptcha
- Примеры использования кода
Загрузите примеры клиентских примеров API:
Поддержка устаревшей API Recaptcha
Что такое «устаревшая/устаревшая reCAPTCHA/noCAPTCHA»?
Существуют устаревшие/устаревшие проблемы с recaptcha, которые обычно требуют от пользователя идентифицировать и нажимать на определенные изображения. Их не следует путать с традиционными словами/номерами Recaptchas (у них нет изображений).
Для вашего удобства мы реализовали поддержку Legacy/устаревшего API Recaptcha. Если ваше программное обеспечение работает с ним и поддерживает минимальную конфигурацию, вы должны быть способны расшифровать капчи, используя Death by Captcha в кратчайшие сроки.
Мы предоставляем два разных типа устаревшей API Recaptcha:
- Coordinates API: При условии, что снимки экрана, API возвращает группу координат, чтобы щелкнуть.
- Image Group API: Предоставляя группу (BASE64-кодированных) изображений, API возвращает индексы изображений, чтобы щелкнуть.
Ценообразование
В настоящее время цена составляет $ 3,99/1K Новые проблемы Recaptcha правильно решаются. Вам не будет выставлен счет за изображения, о которых сообщалось как неправильно решаемые. Обратите внимание, что эта цена применяется только к новым изображениям reCAPTCHA / noCAPTCHA, поэтому только клиенты, использующие этот конкретный API, будут взиматься выше.
Ограничения загрузки изображения.
Размер файла изображения ограничен менее чем 180 КБ . Когда изображение будет кодируется в Base64, размер должен быть ниже, чем 120 КБ . Поддерживаемые форматы изображений - JPG, PNG, GIF и BMP .
FAQ API Координаты:
- Что есть координирует URL API ?
-
Для использования координат API вам придется отправить запрос на сообщение HTTP на http://api.dbcapi.me/api/captcha
- Каковы параметры Post для координат API ?
-
Это:
- username: Имя пользователя учетной записи вашей учетной записи DBC
- password: Ваша пароль учетной записи DBC
- captchafile: Содержимое файла в кодировке Base64 или многокомпонентное содержание файла с действительным скриншотом устаревшей/устаревшей Recaptcha
- type=2: Тип 2 указывает, что это устаревшее/устаревшее API координат Recaptcha
- Какой ответ от координат API?
-
captcha: id предоставленной капчи, если поле текст пустое, вам придется запрашивать url http://api.dbcapi.me/api/captcha/captcha_id, пока она не станет доступной
is_correct: (0 или 1) Указание, была ли капча помечена как неправильная или нечитаемая
text: вложенный список, похожий на JSON, со всеми координатами (x, y), чтобы щелкнуть относительно изображения, например:
[[23.21, 82.11]]
где координата x составляет 23,21, а координата Y составляет 82.11
Использование координат API с клиентами 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);
// });
}
});
Image Group API FAQ:
- Какой URL для API Группового изображения?
-
Для использования API Image Group вам придется отправить запрос на сообщение HTTP на http://api.dbcapi.me/api/captcha
- Каковы параметры Post для API Image Group?
-
Это:
- username: Имя пользователя учетной записи вашей учетной записи DBC
- password: Ваша пароль учетной записи DBC
- captchafile: Содержимое файла/изображения, закодированное в Base64, с действительной устаревшей/устаревшей Recaptcha.
- banner: Base64 -кодированное изображение баннера (пример изображения, которое появляется в правом верхнем правом)
- banner_text: Текст баннера (текст, который появляется слева в верхней части)
- type=3: Тип 3 указывает, что это устаревшее/устаревшее API групп изображений Recaptcha
- grid: Дополнительный параметр сетки определяет, к какой сетке выровнены отдельные изображения в captcha (строка, ширина + "x" + высота, например: "2x4", если изображения выровнены по 4 строкам с 2 изображениями в каждой. Если не указано, dbc попытается автоматически обнаружить сетку.
- Какой ответ от API Image Group?
-
captcha: id предоставленной капчи, если поле текст пустое, вам придется запрашивать url http://api.dbcapi.me/api/captcha/captcha_id, пока она не станет доступной
is_correct:(0 или 1) Указание, была ли капча помечена как неправильная или нечитаемая
text: Список индекса, похожий на JSON для каждого изображения, который следует нажать. например:
[1, 4, 6]
Где изображения, которые следует нажать, являются первыми, четвертым и шестью, подсчитывая слева направо и вниз
Использование API Image Group API с клиентами 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);
// });
}
});
Примеры кода использования для координат API и API группы изображений:
1) Отправьте свое изображение:
Обратите внимание, что мы используем тип = "2" для координат CAPTCHA API.
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
ИЛИ:
Обратите внимание, что мы используем тип="3" для API CAPTCHA Image Group.
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
Или, если вы поставляете информацию о сетке (высота x ширина). В этом примере используется сетка 4x2, вы должны указать его в соответствии с загруженным изображением. Если вы не будете снабжать параметр сетки, DBC попытается автоматически разместить надлежащую сетку.
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
Результатом являются данные URL_ENCODED, включая соответствующую CAPTCHA_ID:
'status=0&captcha=CAPTCHA_ID&text=&is_correct=1'
2) Вытягивая координаты CAPTCHA: возьмите заданный CAPTCHA_ID и сделайте запрос такой:
curl -H "Accept: application/json" \
http://api.dbcapi.me/api/captcha/CAPTCHA_ID
Результатом является json-string, где поле «text» включает в себя соответствующие координации:
'{"status": 0, "captcha": 2911096,
"is_correct": true, "text": "[[57,240],[156,335]"}'