指数

下载基于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

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

更新

  1. Feb 26: NEW TYPE ADDED - Now supporting Friendly CAPTCHA!! See the details at https://deathbycaptcha.com/api/friendly
  2. Nov 22: Now supporting Amazon WAF!! See the details at https://deathbycaptcha.com/api/amazonwaf
  3. Nov 01: Today our Socket API was affected by a technical issue for a few hours. It's now sorted and back to 100%, working optimally. We sincerely apologize for the inconvenience this may have caused you. If you were affected, please don't hesitate to contact us: https://deathbycaptcha.com/contact and we'll be happy to assist/compensate you!

  4. 之前的更新…

支持

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

现场支持

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