指数

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

recaptcha v3 API支持

什么是“Recaptcha V3”挑战?

reCAPTCHA v3 是 Google 推出的一项新的隐形安全措施。 它添加了验证码,而不强迫用户解决任何挑战。 使用称为“操作”的概念来识别机器人流量中的真实流量。

我们的服务现在支持Google reCAPTCHA v3。这个API与tokens(reCAPTCHA v2) API非常相似,只添加了两个新参数,一个是用于动作的,另一个是用于最小分数的.

recaptcha v3从每个用户返回A 得分,可以评估用户是机器人还是人类。然后,该网站使用得分值的范围从0到1,以决定是否接受请求。较低的分数接近0是机器人。

reCAPTCHA v3的“action”参数是一项额外数据,用于区分不同的验证码验证,例如登录、注册、销售等。请注意。

价钱

暂时,价格为 $2.89/1k recaptcha V3挑战正确解决了。据报道,您不会为您的验证验证而被账单。请注意,此定价仅适用于新的recaptcha V3,因此只有使用此特定API的客户才会收取上述费率。

recaptcha v3 API常见问题:

recaptcha v3中的动作是什么?

是一个新参数,允许在网站上处理用户操作以不同的方式处理。

为了找到此问题,我们需要检查网站的JavaScript代码,以寻找Grecaptcha.ectecute函数的呼叫。例子:


grecaptcha.execute("6Lc2fhwTAAAAAGatXTzFYfvlQMI2T7B6ji8UVV_f", {action: something})
    

有时很难找到它,我们需要查看所有JavaScript文件。我们也可以尝试在____grecaptcha_cfg配置对象中找到操作参数的值。另外,我们可以调用grecaptcha.ectute并检查JavaScript代码。如果我们没有在请求中提供诉讼,API将使用“验证”默认值。

Recaptcha V3 API中的最低得分是什么?

验证码分辨率所需的最低分数。我们建议使用0.3分钟得分值,得分高于0.3的得分很难获得。

recaptcha v3 api的帖子参数是什么?
  • username: 您的DBC帐户用户名
  • password: 您的DBC帐户密码
  • type=5: 类型5指定这是recaptcha v3 api
  • token_params=json(payload): 访问recaptcha挑战的数据
  • JSON有效负载结构:
    • proxy: 您的代理URL和凭据(如果有)。例证:
      • http://127.0.0.1:3128
      • http://user:password@127.0.0.1:3128
    • proxytype: 您的代理连接协议。有关支持的代理类型,请参见支持哪些代理类型? 示例:
      • HTTP
    • googlekey: 包含Recaptcha的网站的Google Recaptcha网站密钥。有关网站密钥的更多详细信息,请参见什么是Recaptcha网站密钥?示例:
      • 6Le-wvkSAAAAAPBMRTvw0Q4Muexq9bi0DJwx_mJ-
    • pageurl: 页面的URL带有recaptcha挑战。该URL必须包括加载recaptcha的路径。示例:如果您要解决的recaptcha在http://test.com/path1中,则pageurl必须是http://test.com/path1而不是http://test.com。
    • action: 动作名称。
    • min_score: 最低分数,通常为0.3
    代理参数是可选的,但是我们强烈建议使用一个解决方案的IP之间的不一致之处,以防止提供的页面拒绝(如果没有提供代理)和提交的IP验证解决方案(您的)。
    注意:如果提供了代理,则proxytype是必需的参数。

    Token_params的完整示例:

    
    {
      "proxy": "http://127.0.0.1:3128",
      "proxytype": "HTTP",
      "googlekey": "6Le-wvkSAAAAAPBMRTvw0Q4Muexq9bi0DJwx_mJ-",
      "pageurl": "http://test.com/path_with_recaptcha",
      "action": "example/action",
      "min_score": 0.3
    }
                
recaptcha v3 api的响应是什么?

响应与普通验证码具有相同的结构。有关响应的详细信息,请参见轮询已上传验证码的状态。解决方案将在响应的文本键中提供。它只有一次使用的有效期为1分钟。

RECAPTCHA V3 API的卷曲用法代码示例:

1)发送有效载荷:

请注意,我们正在使用类型=“5”作为recaptcha V3 API。

    curl --header 'Expect: ' -F username=your_username_here \
                             -F password=your_password_here \
                             -F type='5' \
                             -F token_params='{"proxy": "http://user:password@127.0.0.1:1234",
                                               "proxytype": "HTTP",
                                               "googlekey": "6Lc2fhwTAAAAAGatXTzFYfvlQMI2T7B6ji8UVV_b",
                                               "pageurl": "http://google.com",
                                               "action": "example/action",
                                               "min_score": 0.3}' \
                             http://api.dbcapi.me/api/captcha
        

2)拉码:拿到给定的CAPTCHA_ID并提出这样的请求:
curl -H "Accept: application/json" http://api.dbcapi.me/api/captcha/CAPTCHA_ID
结果是JSON弦乐,该字段“文本”包括相应的解决方案:
'{"status": 0, "captcha": 2911096,
        "is_correct": true, "text": "textSolution"}'

使用API​​客户端使用recaptcha v3 API:


    # recaptcha_v3
    import deathbycaptcha
    import json

    # 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)

    # Put the proxy and recaptcha_v3 data
    # recaptcha_v3 requires 'action' that is the action that triggers
    # recaptcha_v3 validation
    # if 'action' isn't provided we use the default value "verify"
    # also you need to provide 'min_score', a number from 0.1 to 0.9,
    # this is the minimum score acceptable from recaptchaV3

    Captcha_dict = {
        'proxy': 'http://user:password@127.0.0.1:1234',
        'proxytype': 'HTTP',
        'googlekey': '6Lc2fhwTAAAAAGatXTzFYfvlQMI2T7B6ji8UVV_f',
        'pageurl': 'http://google.com',
        'action': "example/action",
        'min_score': 0.3}

    # Create a json string
    json_Captcha = json.dumps(Captcha_dict)

    try:
        balance = client.get_balance()
        print(balance)

        # Put your CAPTCHA type and Json payload here:
        captcha = client.decode(type=5, token_params=json_Captcha)
        if captcha:
            # The CAPTCHA was solved; captcha["captcha"] item holds its
            # numeric ID, and captcha["text"] item it's a 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")
      

令牌API支持的新Recaptcha v2

什么是“Recaptcha V2”挑战?

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

为了方便起见,我们支持了Token API对新的Recaptcha的支持。如果您的软件可以使用它,并支持最小配置,则应立即使用Death By Captcha对验证码进行解码。

  • Token Image API: 提供了一个站点URL和站点密钥,API返回一个令牌,您将使用Recaptcha Challenge在页面中提交表格。

我们还支持通过我们的 2captcha api 来解决令牌验证码。一探究竟!

价钱

目前,价格为 $2.89/1k代币recaptcha挑战正确解决。您不会因为报道错误解决的令牌图像而被收费。请注意,此定价仅适用于新的令牌recaptcha图像,因此只有使用此特定API的客户才会收取上述费率。

令牌图像API常见问题解答:

令牌图像API URL是什么?

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

令牌图像API 的帖子参数是什么?

  • username: 您的DBC帐户用户名
  • password: 您的DBC帐户密码
  • type=4: 类型4指定这是一个新的recaptcha 令牌图像api
  • token_params=json(payload): 访问recaptcha挑战的数据
  • JSON有效负载结构:
    • proxy: 您的代理URL和凭据(如果有)。例证:
      • http://127.0.0.1:3128
      • http://user:password@127.0.0.1:3128
    • proxytype: 您的代理连接协议。有关支持的代理类型,请参见支持哪些代理类型? 示例:
      • HTTP
    • googlekey: 具有reCAPTCHA的网站的Google reCAPTCHA网站密钥。有关站点密钥的更多详细信息,请参见什么是reCAPTCHA网站密钥?。示例:
      • 6Le-wvkSAAAAAPBMRTvw0Q4Muexq9bi0DJwx_mJ-
    • pageurl: 页面的URL带有recaptcha挑战。该URL必须包括加载recaptcha的路径。示例:如果您要解决的recaptcha在http://test.com/path1中,则pageurl必须是http://test.com/path1而不是http://test.com。

    • data-s: 此参数仅用于求解Google搜索令牌,即可见的参数,而Google搜索触发机器人保护。使用Google搜索响应HTML中的Data-S值。对于常规令牌,不使用此参数。
    代理参数是可选的,但是我们强烈建议使用一个解决方案的IP之间的不一致之处,以防止提供的页面拒绝(如果没有提供代理)和提交的IP验证解决方案(您的)。
    注意:如果提供了代理,则proxytype是必需的参数。

    Token_params的完整示例:

    
    {
      "proxy": "http://127.0.0.1:3128",
      "proxytype": "HTTP",
      "googlekey": "6Le-wvkSAAAAAPBMRTvw0Q4Muexq9bi0DJwx_mJ-",
      "pageurl": "http://test.com/path_with_recaptcha"
    }
                

可以使用令牌API在Google搜索上解决recaptcha v2吗?

Google搜索验证码,可见的,而Google搜索触发机器人保护。从2020年5月底开始,现在需要一个新的参数data-s来解决这些验证码。在Google搜索中,recaptcha HTML代码找到data-s值,并作为token_params的一部分发送。请注意,data-s值只能加载一次,避免在Google recaptcha表单上加载JS代码。 data-s参数对于每个码头都是唯一的。

token_params的示例用于Google搜索验证码:


{
  "googlekey": "6Le-wvkSA...",
  "pageurl": "...",
  "data-s": "IUdfh4rh0sd..."
}
            

令牌图像api的响应是什么?

令牌图像API响应的结构与常规验证码响应相同。有关响应的详细信息,请参见轮询已上传CAPTCHA的状态。令牌将出现在响应的text键中。它有效期为2分钟,仅可使用一次。令牌将是以下字符串:


       "03AOPBWq_RPO2vLzyk0h8gH0cA2X4v3tpYCPZR6Y4yxKy1s3Eo7CHZRQntxrd
        saD2H0e6S3547xi1FlqJB4rob46J0-wfZMj6YpyVa0WGCfpWzBWcLn7tO_EYs
        vEC_3kfLNINWa5LnKrnJTDXTOz-JuCKvEXx0EQqzb0OU4z2np4uyu79lc_Ndv
        L0IRFc3Cslu6UFV04CIfqXJBWCE5MY0Ag918r14b43ZdpwHSaVVrUqzCQMCyb
        cGq0yxLQf9eSexFiAWmcWLI5nVNA81meTXhQlyCn5bbbI2IMSEErDqceZjf1m
        X3M67BhIb4"

要学习如何使用令牌解决recaptcha,请参阅如何使用令牌解决recaptcha?

支持哪些代理类型?

当前,仅支持 http 代理。对其他类型的支持将来会添加。

什么是recaptcha网站密钥?

这是使用recaptcha服务的每个网站的唯一标识符分配。要查找网站密钥,请按照以下步骤:

  1. 访问您要绕过的网站。
  2. 通过执行以下操作之一,打开浏览器的开发人员控制台:
    • 使用浏览器的键盘快捷键(请参阅此链接以寻求帮助)
    • 右键单击页面上的任何位置,单击“检查”或“ Inspect element”选项,然后单击打开的窗口的“控制台”选项卡。
    • 如果上述方法都不起作用,请google 如何打开您的浏览器控制台
  3. 将此 JavaScript 指令粘贴到开发人员控制台上: document.getElementsByClassName('g-recaptcha')[0].getAttribute("data-sitekey");
  4. 按Enter键。结果应该是像Token图片API的POST参数是什么?问题中GoogleKey部分用作示例的字符串。此字符串是网站密钥。

找不到数据站点,我该怎么办?

我们可以找到检查元素或查看页面源代码并搜索名称的Data-SiteKey。 data-sitekey localization example
但是在某些情况下,这种数据sitekey并不是那么明显,在这种情况下,尝试搜索以6升开头的类似单词或某些字符串,没有特定的方法可以找到SiteKey,如果是隐秘/硬性的情况。要获取数据站点,我们需要利用我们的技能来获得它。

如何使用令牌解决recaptcha?

有三种可以使用令牌的方式:

第一个方法是使用表单的action属性向URL发送POST请求,其中令牌设置为id为g-recaptcha-response的文本区域字段的值。其他字段可以按需填写。考虑到它不需要浏览器仿真或DOM操作,这是推荐的使用令牌的方法。

第二种方法是操纵DOM。如果您正在开发脚本来解决recaptchas,请检查您使用的编程语言或框架是否具有操纵DOM或执行JavaScript指令的库。需要完成以下步骤以成功使用令牌:

  1. 将令牌作为元素的内部HTML,上面有ID"g-recaptcha-response"。
    • 要使用JavaScript执行此操作,请运行:document.getElementById(`g-recaptcha-response`).innerHTML = TOKEN;,其中TOKEN是API响应的text键返回的字符串。如果返回的字符串还没有双引号("),请在令牌之前和之后放置双引号。
  2. 提交表格或填写需要解决recaptcha的诉讼。
    • 要使用JavaScript实现此目的,请执行:document.getElementById(`FORM_ID`).submit();其中FORM_ID是要提交的表单的ID。
    • 有时不够仅提交表格解决recaptcha,在这些情况下,我们需要将结果令牌从API复制到G-Recaptcha-Response元素中,因此只需小心才能应对确切的结果令牌,并避免使用空间和其他空间和其他字符,例如引号或双引号。将结果令牌复制到元素之后,我们需要将小部件事件激活为验证码,以将其标记为已解决。
    • successfully solved reCAPTCHA
    • 每个站点都有一种实现recaptcha的独特方法,建议在尝试自动化它之前手动进行新站点的过程,在我们确定解决recaptcha的所有步骤之后,我们可以使用我们的工具来自动化该过程。我们考虑到有时提交表格会激活recaptcha,有时我们没有提交表格,或者在其他情况下是验证码的回调,该回调激活了事件以访问资源。
使用令牌的最后方法是手动提交表单。首先,遵循指南中的步骤1和2,了解如何找到什么是reCAPTCHA站点密钥?。之后,复制上述第1步中的JavaScript指令,将其粘贴到开发人员控制台中,按Enter键,并手动提交表单。

注意:方法2和3仅应用于测试目的,因为它们比第一个要慢得多,资源密集得多。

什么是recaptcha回调?

某些站点可以配置recaptcha,以对成功验证进行回调,并避免使用提交表单(使用G-Recaptcha标签上的数据呼叫表属性),或者如果使用显式渲染,则通过`callback`参数。

例如,回调函数通常在recaptcha的数据呼叫参数中定义,例如:


        data-callback="myFunction";
      
或在某些情况下,它定义为grecaptcha.render函数的回调参数,例如:


        grecaptcha.render('example', {
          'sitekey' : 'site-key',
          'callback' : myFunction
        });
      
最后,我们要做的就是调用该功能:

        myFunction();
      
我正在使用从API中获得的令牌,为什么recaptcha无法解决?

所有的网站都会以自己的方式实施recaptcha,这意味着我们需要分析每个网站的recaptcha实现,然后再尝试使用结果令牌。一旦我们确定了这个特定网站是如何工作的,我们就可以像普通用户一样解决reCAPTCHA挑战,并获得对其实现的深入了解。然后我们可以开始手动尝试使用API生成结果令牌,在确保程序正确之后才能进行自动化。为了确保如何使用recaptcha,我们可以查看reCAPTCHA v2文档。(英文)

如何验证我的代理被用来解决验证码?

转到上一个提交上传验证码后,然后检查上传验证码的“代理”和“提供的代理状态”字段。如果您的代理用于求解验证码,则“代理”字段值将是您的代理IP地址,并且“提供的代理状态”将是“好”。如果不使用它,则“代理”将具有“ DBC代理”为值(这意味着使用我们的代理之一解决验证码)和“提供的代理状态”字段值将是“不良或未提供”。示例屏幕截图:

Example screenshot of Provided Proxy Status in Previous Submissions section

令牌图像API的使用代码示例:

1)发送有效载荷:

请注意,我们正在使用type=“4”作为令牌图像API。

    curl --header 'Expect: ' -F username=your_username_here \
                             -F password=your_password_here \
                             -F type='4' \
                             -F token_params='{"proxy": "http://user:password@127.0.0.1:1234",
                                               "proxytype": "HTTP",
                                               "googlekey": "6Lc2fhwTAAAAAGatXTzFYfvlQMI2T7B6ji8UVV_b",
                                               "pageurl": "http://google.com"}' \
                             http://api.dbcapi.me/api/captcha
        

2)拉码:拿到给定的CAPTCHA_ID并提出这样的请求:
curl -H "Accept: application/json" http://api.dbcapi.me/api/captcha/CAPTCHA_ID
结果是JSON弦乐,该字段“文本”包括相应的解决方案:
'{"status": 0, "captcha": 2911096,
        "is_correct": true, "text": "textToken"}'

与API客户端一起使用令牌image API:


    /**
     * Death by Captcha PHP API recaptcha_v2 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";

    // To use recaptcha_Token
    // Set the proxy and reCaptcha token data
    $data = array(
         'proxy' => 'http://user:password@127.0.0.1:1234',
         'proxytype' => 'HTTP',
        'googlekey' => '6Le-wvkSAAAAAPBMRTvw0Q4Muexq9bi0DJwx_mJ-',
        'pageurl' => 'https://www.google.com/recaptcha/api2/demo'
    );
    //Create a json string
    $json = json_encode($data);

    //Put the type and the json payload
    $extra = [
        'type' => 4,
        'token_params' => $json,
    ];

    // Put null the first parameter and add the extra payload
    if ($captcha = $client->decode(null, $extra)) {
        echo "CAPTCHA {$captcha['captcha']} uploaded\n";

        sleep(DeathByCaptcha_Client::DEFAULT_TIMEOUT);

        // Poll for CAPTCHA indexes:
        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']);
        }
    }
        

    import deathbycaptcha
    import json

    # 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, username)

    # Put the proxy and recaptcha_v2 data
    Captcha_dict = {
        'proxy': 'http://user:password@127.0.0.1:1234',
        'proxytype': 'HTTP',
        'googlekey': '6Le-wvkSAAAAAPBMRTvw0Q4Muexq9bi0DJwx_mJ-',
        'pageurl': 'https://www.google.com/recaptcha/api2/demo'}
    # Create a json string
    json_Captcha = json.dumps(Captcha_dict)

    try:
        balance = client.get_balance()
        print(balance)

        # Put your CAPTCHA type and Json payload here:
        captcha = client.decode(type=4, token_params=json_Captcha)
        if captcha:
            # The CAPTCHA was solved; captcha["captcha"] item holds its
            # numeric ID, and captcha["text"] item it's a text token".
            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 org.json.JSONObject;

import java.io.IOException;

class ExampleRecaptchaV2 {
    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";

        /* 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 {
                // Proxy and reCAPTCHA v2 token data
                String proxy = "http://user:password@127.0.0.1:1234";
                String proxytype = "http";
                String googlekey = "6Lc2fhwTAAAAAGatXTzFYfvlQMI2T7B6ji8UVV_f";
                String pageurl = "http://google.com";
                /* Upload a reCAPTCHA v2 and poll for its status with 120 seconds timeout.
                   Put the token params and timeout (in seconds)
                   0 or nothing for the default timeout value. */
                captcha = client.decode(proxy, proxytype, googlekey, pageurl);

                //other method is to send a json with the parameters
                /*
                JSONObject json_params = new JSONObject();
                json_params.put("proxy", proxy);
                json_params.put("proxytype", proxytype);
                json_params.put("googlekey", googlekey);
                json_params.put("pageurl", pageurl);
                captcha = client.decode(4, json_params);
                */
            } 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);
        }


    }
}
        

using System;
using System.Collections;
using DeathByCaptcha;

namespace DBC_Examples.examples
{
    public class RecaptchaV2Example
    {
        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";

            /* 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); */

            // Put your Proxy credentials and type here
            string proxy = "http://user:password@127.0.0.1:1234";
            string proxyType = "HTTP";
            string googlekey = "6Lc2fhwTAAAAAGatXTzFYfvlQMI2T7B6ji8UVV_b";
            string pageurl = "http://google.com";

            string tokenParams = "{\"proxy\": \"" + proxy + "\"," +
                                 "\"proxytype\": \"" + proxyType + "\"," +
                                 "\"googlekey\": \"" + googlekey + "\"," +
                                 "\"pageurl\": \"" + pageurl + "\"}";

            try
            {
                double balance = client.GetBalance();

                /* 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. */
                Captcha captcha = client.Decode(Client.DefaultTimeout,
                    new Hashtable()
                    {
                        {"type", 4},
                        {"token_params", tokenParams}
                    });

                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 RecaptchaV2
    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)

        ' Proxy and recaptcha_v2 token data
        Dim proxy = "http://user:password@127.0.0.1:1234"
        Dim proxyType = "HTTP"
        Dim googlekey = "6Lc2fhwTAAAAAGatXTzFYfvlQMI2T7B6ji8UVV_b"
        Dim pageurl = "http://google.com"

        Console.WriteLine(String.Format("Your balance is {0,2:f} US cents",
                                        client.Balance))

        ' Create a JSON with the extra data
        Dim tokenParams = "{""proxy"": """ + proxy + """," +
                          """proxytype"": """ + proxyType + """," +
                          """googlekey"": """ + googlekey + """," +
                          """pageurl"": """ + pageurl + """}"

        '  Create the payload with the type and the extra data
        Dim extraData As New Hashtable()
        extraData.Add("type", 4)
        extraData.Add("token_params", tokenParams)

        ' 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(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 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
' we need to set a timeout to wait for the captcha solution
SET !TIMEOUT_PAGE 200
' the script go to this URL to use the API
URL GOTO=http://api.dbcapi.me/decaptcher?function=token&print_format=html
' Set our username, need to replace {{}} with username, ex.
' TAG POS=1 TYPE=INPUT:TEXT FORM=ACTION:http://api.dbcapi.me/decaptcher
'                             ATTR=NAME:username CONTENT=myusername
TAG POS=1 TYPE=INPUT:TEXT FORM=ACTION:http://api.dbcapi.me/decaptcher
                                ATTR=NAME:username CONTENT={{username}}
' replace password with our password, ex.
' TAG POS=1 TYPE=INPUT:TEXT FORM=ACTION:http://api.dbcapi.me/decaptcher
'                           ATTR=NAME:password CONTENT=mycurrentpassword
TAG POS=1 TYPE=INPUT:TEXT FORM=ACTION:http://api.dbcapi.me/decaptcher
                            ATTR=NAME:password CONTENT={{password}}
' here we set our proxy, ex.
' TAG POS=1 TYPE=INPUT:TEXT FORM=ACTION:http://api.dbcapi.me/decaptcher
'    ATTR=NAME:proxy CONTENT=https://proxy_username:proxy_password@proxy_url:proxy_port
' we need to use this proxy format https://proxy_username:proxy_password@proxy_url:proxy_port
TAG POS=1 TYPE=INPUT:TEXT FORM=ACTION:http://api.dbcapi.me/decaptcher
                                            ATTR=NAME:proxy CONTENT={{proxy}}
' here we set the proxy type ex.
' TAG POS=1 TYPE=INPUT:TEXT FORM=ACTION:http://api.dbcapi.me/decaptcher
'                                           ATTR=NAME:proxytype CONTENT=http
TAG POS=1 TYPE=INPUT:TEXT FORM=ACTION:http://api.dbcapi.me/decaptcher ATTR=NAME:proxytype
                                                                        CONTENT={{proxy_type}}
' here we set the googlekey
' for information about googlekey, look here
' http://deathbycaptcha.com/user/api/newtokenrecaptcha#what-site-key
TAG POS=1 TYPE=INPUT:TEXT FORM=ACTION:http://api.dbcapi.me/decaptcher ATTR=NAME:googlekey
                                                                CONTENT={{google_site_key}}
' here we set the site that have the token recaptcha challenge, ex.
' TAG POS=1 TYPE=INPUT:TEXT FORM=ACTION:http://api.dbcapi.me/decaptcher ATTR=NAME:pageurl
                                                        CONTENT=https://www.site.com/login
TAG POS=1 TYPE=INPUT:TEXT FORM=ACTION:http://api.dbcapi.me/decaptcher ATTR=NAME:pageurl
                                                                CONTENT={{challenge_site}}
' we submit the captcha to solve
TAG POS=1 TYPE=INPUT:SUBMIT FORM=ACTION:http://api.dbcapi.me/decaptcher ATTR=VALUE:Send

' and we get our result
TAG POS=6 TYPE=TD ATTR=* EXTRACT=TXT
SET !VAR1 {{!EXTRACT}}


/*
* Death by Captcha Node.js API recaptcha_v2 token image 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

// Proxy and recaptcha_v2 token data
const token_params = JSON.stringify({
    'proxy': 'http://username:password@proxy.example:3128',
    'proxytype': 'HTTP',
    'googlekey': '6Le-wvkSAAAAAPBMRTvw0Q4Muexq9bi0DJwx_mJ-',
    'pageurl': 'https://www.google.com/recaptcha/api2/demo'
});

// 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 4 & token_params extra arguments
client.decode({extra: {type: 4, token_params: token_params}}, (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);
        * });
        */
    }

});

        

地位: OK

服务器以比平均响应时间更快的速度全面运行。
  • 平均求解时间
  • 2 秒 - Normal CAPTCHAs (1分钟。前)
  • 33 秒 - reCAPTCHA V2, V3, etc (1分钟。前)
  • 36 秒 - hCAPTCHA & 其他的 (1分钟。前)
Chrome and Firefox logos
可用的浏览器扩展名

更新

  1. 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.
  2. 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!
  3. Sep 13: We experienced a brief login issue today, which has now been resolved. Thank you for your patience and understanding!

  4. 之前的更新…

支持

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

现场支持

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