指数

下载基于API客户端的示例代码:

遗留/过时的Recaptcha API支持

什么是"Legacy/outdated reCAPTCHA/noCAPTCHA"?

存在遗留/过时的recaptcha挑战,通常要求用户识别并单击某些图像。他们不要与传统单词/数字recaptchas混淆(这些单词没有图像)。

为了您的方便,我们实现了对Legacy/Outdated Recaptcha API的支持。如果您的软件使用它并支持最小配置,您应该能够立即使用Death by Captcha解码验证码。

我们提供两种不同类型的Legacy/Outdated Recaptcha API:

  • Coordinates API: 提供了屏幕截图,API返回一组坐标单击。
  • Image Group API: 提供了一组(基本64编码)图像,API返回单击图像的索引。

价钱

暂时,价格为$ 3.99/1K新的Recaptcha挑战正确解决。对于报告为错误解决的图像,您将不会被收费。请注意,此定价仅适用于新的reCAPTCHA / noCAPTCHA映像,因此只有使用此特定API的客户才会向高于速率收取费用。

图像上传限制。

图像文件大小限于小于 180 kb 。当图像将在基本64中编码时,大小应低于 120 kb 。支持的图像格式为JPG,PNG,GIF和BMP 。

坐标API常见问题解答:

什么是坐标api url

要使用坐标API您必须将http POST请求发送到http://api.dbcapi.me/api/captcha

coordinates api的帖子参数是什么?

这些都是:

  • username: 您的DBC帐户用户名
  • password: 您的DBC帐户密码
  • captchafile: 具有有效的Legacy/Outdated Recaptcha截图的Base64编码或多部分文件内容
  • type=2: 类型2指定这是旧版/过时的Recaptcha 坐标API
coordinates api的响应是什么?

captcha: 如果text字段为空,则必须轮询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);
            // });
        }

    });

    

图像组API常见问题:

图像组API的URL是什么?

要使用图像组API 您必须将http Post请求发送到http://api.dbcapi.me/api/captcha

图像组API 的邮政参数是什么?

这些都是:

  • username: 您的DBC帐户用户名
  • password: 您的DBC帐户密码
  • captchafile: Base64编码的文件/图像内容,带有有效的旧版/过时的Recaptcha。
  • banner: base64编码的横幅图像(右上角出现的示例图像)
  • banner_text: 横幅文字(出现在左上方的文本)
  • type=3: 类型3指定这是旧版/过时的Recaptcha 图像组API
  • grid: 可选的网格参数指定验证码中单个图像对齐到哪个网格(字符串,宽度+"x"+高度,例如:"2x4",如果图像对齐到每行有2张图片、共4行。如果未提供,则DBC将尝试自动检测网格。)
图像组API的响应是什么?

captcha: 如果text字段为空,则必须轮询http://api.dbcapi.me/api/captcha/captcha_id 的网址,直到其变为可用状态

is_correct:(0或1)指定验证码是否标记为不正确或不可读

text: 每个图像的索引的类似JSON的列表,应单击。例如:

    [1, 4, 6]

应该点击的图像是第一个,第四和六个,从左到右和底部计数

将图像组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)发送您的图像:

请注意,我们使用的是type =“ 2”作为CACTCHA坐标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
    

或者:

请注意,我们使用的是type=“3”作为验证码图组API。


    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_ENCOD编码数据,包括相应的CAPTCHA_ID:

    'status=0&captcha=CAPTCHA_ID&text=&is_correct=1'

2)拉动验证码坐标:取给给定的CAPTCHA_ID并提出这样的请求:

curl -H "Accept: application/json" \
    http://api.dbcapi.me/api/captcha/CAPTCHA_ID

结果是JSON弦乐,该字段“text”包括相应的坐标:

'{"status": 0, "captcha": 2911096,
  "is_correct": true, "text": "[[57,240],[156,335]"}'

地位: 高负载

服务器已全面运行,但响应时间可能暂时高于平均水平。
  • 平均求解时间
  • 3 秒 - Normal CAPTCHAs (1分钟。前)
  • 41 秒 - reCAPTCHA V2, V3, etc (1分钟。前)
  • 21 秒 - hCAPTCHA & 其他的 (1分钟。前)
Chrome and Firefox logos
可用的浏览器扩展名

更新

  1. Nov 22: Success rates for solving hCAPTCHA challenges may temporarily be affected by external factors beyond our control. We are actively monitoring the situation and are working diligently to normalize performance as soon as possible. Thank you for your patience and understanding.
  2. Nov 14: RESOLVED - Today we experienced API instability between 18:00hrs & 19:00hrs (GMT-4). The main issue was resolved, so CAPTCHA solving is working as usual, however, there might be some stats anomalies that will shortly be fixed. In the meantime, if you need assistance, contact us at https://deathbycaptcha.com/contact and we'll gladly assist you. We apologize for any inconvenience and appreciate your patience and understanding.
  3. Sep 27: LIMITED WEEK-END PROMOTION! 20% OFF ON 2CHECKOUT PACKAGES IF YOU ORDER BETWEEN SEPT 28 & 29 (GMT-4). Get your CAPTCHAs at https://deathbycaptcha.com/user-pay and then contact us at https://deathbycaptcha.com/contact with your order's detail to claim your freebies!

  4. 之前的更新…

支持

我们的系统设计为完全用户友好且易于使用。如果您有任何问题,只需发送电子邮件至DBC 技术支持电子邮件com,支持代理将尽快与您联系。

现场支持

周一至周五可用(美国东部标准时间上午 10 点至下午 4 点) Live support image. Link to live support page