Menu tài liệu

FuncaptchaTaskProxyless: vượt qua Arkose Labs captcha (hay Funcaptcha) không proxy

Loại tác vụ này giải mã Arkose Labs captcha (hay Funcaptcha) không proxy. Tác vụ sẽ được thực thi bằng máy chủ proxy của riêng chúng tôi và/hoặc địa chỉ IP của nhân viên.

Arkose Labs API cung cấp cho chủ sở hữu trang web thông tin về địa chỉ IP của người giải. Tuy nhiên, trước tiên bạn nên thử vượt qua captcha không proxy và nếu cách này không hiệu quả - hãy chuyển sang FuncaptchaTask có proxy.

Ví dụ

Đối tượng tác vụ

Thuộc tính Loại Bắt buộc Mục đích
type Chuỗi FunCaptchaTaskProxyless
websiteURL Chuỗi Địa chỉ trang web mục tiêu. Có thể ở bất kỳ đâu trên trang web, ngay cả trong khu vực thành viên. Nhân viên chúng tôi không điều hướng đến khu vực đó mà chỉ giả lập việc truy cập.
websitePublicKey Chuỗi Khóa công khai Arkose Labs
funcaptchaApiJSSubdomain Chuỗi Không Miền phụ Arkose Labs tùy chỉnh mà từ đó tải Javascript tiện ích con. Bắt buộc đối với một số trường hợp, nhưng hầu hết các tích hợp Arkose Labs chạy mà không cần miền phụ này.
data Chuỗi Không Tham số bổ sung mà triển khai Arkose Labs có thể yêu cầu. Sử dụng thuộc tính này để gửi giá trị "blob" dưới dạng một đối tượng được chuyển đổi thành chuỗi. Xem ví dụ về dạng dữ liệu này.
{"\blob\":\"HERE_COMES_THE_blob_VALUE\"}

Ví dụ về yêu cầu

CURL
          curl -i -H "Accept: application/json" \
     -H "Content-Type: application/json" \
     -X POST -d '{
    "clientKey":"YOUR_API_KEY_HERE",
    "task":
        {
            "type":"FunCaptchaTaskProxyless",
            "websiteURL":"http://mywebsite.com/recaptcha/test.php",
            "funcaptchaApiJSSubdomain":"optional-api-subdomain-here.arkoselabs.com",
            "data": "{\"blob\":\"dyXvXANMbHj1iDyz.Qj97JtSqR2n%2BuoY1V%2FbdgbrG7p%2FmKiqdU9AwJ6MifEt0np4vfYn6TTJDJEfZDlcz9Q1XMn9przeOV%2FCr2%2FIpi%2FC1s%3D\"}",
            "websitePublicKey":"DE0B0BB7-1EE4-4D70-1853-31B835D4506B"
        },
    "softId": 0
}' https://api.anti-captcha.com/createTask
        
PHP
          <?php

//git clone git@github.com:AdminAnticaptcha/anticaptcha-php.git

include("anticaptcha.php");
include("funcaptchaproxyless.php");

$api = new FunCaptchaProxyless();
$api->setVerboseMode(true);

//your anti-captcha.com account key
$api->setKey("YOUR_API_KEY_HERE");

//target website address
$api->setWebsiteURL("http://mywebsite.com/funcaptcha/");

//recaptcha key from target website
$api->setWebsitePublicKey("3B24C078-2DF1-771D-913A-11F824CD5A7C");

//optional Arkose Labs API subdomain, see our documentation for details
//$api->setJSSubdomain("optional.subdomain.com");

//optional data[blob] value, read the docs
//$api->setDataBlob("DATA_BLOB_VALUE_HERE");

//Specify softId to earn 10% commission with your app.
//Get your softId here: https://anti-captcha.com/clients/tools/devcenter
$api->setSoftId(0);

//create task in API
if (!$api->createTask()) {
    $api->debout("API v2 send failed - ".$api->getErrorMessage(), "red");
    return false;
}

$taskId = $api->getTaskId();

//wait in a loop for max 300 seconds till task is solved
if (!$api->waitForResult(300)) {
    echo "could not solve captcha\n";
    echo $api->getErrorMessage()."\n";
} else {

    $gResponse    =   $api->getTaskSolution();
    echo "your arkose labs token: $gResponse\n\n";

}
        
Python
          #pip3 install anticaptchaofficial

from anticaptchaofficial.funcaptchaproxyless import *

solver = funcaptchaProxyless()
solver.set_verbose(1)
solver.set_key("YOUR_API_KEY_HERE")
solver.set_website_url("https://website.com")
solver.set_website_key("XXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXX")

# optional funcaptcha API subdomain, see our Funcaptcha documentation for details
# solver.set_js_api_domain("custom-api-subdomain.arkoselabs.com")

# optional data[blob] value, read the docs
# solver.set_data_blob("{\"blob\":\"DATA_BLOB_VALUE_HERE\"}")

# Specify softId to earn 10% commission with your app.
# Get your softId here: https://anti-captcha.com/clients/tools/devcenter
solver.set_soft_id(0)

token = solver.solve_and_return_solution()
if token != 0:
    print "result token: "+token
else:
    print "task finished with error "+solver.error_code
        
NodeJS
          //npm -i @antiadmin/anticaptchaofficial
//https://github.com/AdminAnticaptcha/anticaptcha-npm

const ac = require("@antiadmin/anticaptchaofficial");

ac.setAPIKey('YOUR_API_KEY_HERE');

//optional, but often required:
ac.settings.funcaptchaApiJSSubdomain = 'custom-api.arkoselabs.com';
ac.settings.funcaptchaDataBlob = 'DATA[BLOB]_HERE';

//Specify softId to earn 10% commission with your app.
//Get your softId here: https://anti-captcha.com/clients/tools/devcenter
ac.setSoftId(0);

//solve and receive token
ac.solveFunCaptchaProxyless('http://DOMAIN.COM', 'WEBSITE_KEY')
    .then(token => {
        console.log('result: '+token);
    })
    .catch(error => console.log('test received error '+error));
        
Java
          //git clone git@github.com:AdminAnticaptcha/anticaptcha-java.git

package com.anti_captcha;

import com.anti_captcha.Api.FunCaptchaProxyless;
import com.anti_captcha.Helper.DebugHelper;

import org.json.JSONArray;
import org.json.JSONException;
import org.json.JSONObject;

import java.net.MalformedURLException;
import java.net.URL;
import java.util.Iterator;
import java.util.concurrent.ThreadLocalRandom;

public class Main {

    public static void main(String[] args) throws InterruptedException, MalformedURLException, JSONException {

        DebugHelper.setVerboseMode(true);

        FunCaptchaProxyless api = new FunCaptchaProxyless();
        api.setClientKey("YOUR_API_KEY_HERE");
        api.setWebsiteUrl(new URL("http://mywebsite.com/funcaptcha/"));
        api.setWebsitePublicKey("3B24C078-2DF1-771D-913A-11F824CD5A7C");

        //optional parameters, read the docs, be careful!
        api.setApiSubdomain("custom-domain-api.arkoselabs.com");
        api.setDataBlob("{\"blob\":\"DATA_BLOB_VALUE_HERE\"}");

        //Specify softId to earn 10% commission with your app.
        //Get your softId here: https://anti-captcha.com/clients/tools/devcenter
        api.setSoftId(0);

        if (!api.createTask()) {
            DebugHelper.out(
                    "API v2 send failed. " + api.getErrorMessage(),
                    DebugHelper.Type.ERROR
            );
        } else if (!api.waitForResult()) {
            DebugHelper.out("Could not solve the captcha.", DebugHelper.Type.ERROR);
        } else {
            DebugHelper.out("Result token: " + api.getTaskSolution().getToken(), DebugHelper.Type.SUCCESS);
        }

    }

}

        

Ví dụ về phản hồi

JSON không lỗi
          {
    "errorId": 0,
    "taskId": 7654321
}
        
JSON có lỗi
          {
    "errorId": 1,
    "errorCode": "ERROR_KEY_DOES_NOT_EXIST",
    "errorDescription": "Account authorization key not found in the system"
}
        

Truy xuất lời giải

Sử dụng phương thức getTaskResult để yêu cầu giải. Cho nhân viên một khoảng thời gian, chẳng hạn như 5 giây, trước khi tạo yêu cầu đầu tiên. Nếu nhân viên vẫn bận, hãy thử lại sau 3 giây.

Đối tượng giải của tác vụ

Thuộc tính Loại Mục đích
token Chuỗi Chuỗi mã thông báo bắt buộc để tương tác với biểu mẫu gửi trên trang web mục tiêu.

Ví dụ về phản hồi

JSON không lỗi
          {
    "errorId":0,
    "status":"ready",
    "solution":
    {
        "token":"14160cdbe84b28cd5.8020398501|r=us-east-1|metabgclr=%23ffffff|maintxtclr=%231B1B1B|mainbgclr=%23ffffff|guitextcolor=%23747474|metaiconclr=%23757575|meta=7|pk=B7D8911C-5CC8-A9A3-35B0-554ACEE604DA|at=40|ag=101|cdn_url=https%3A%2F%2Ffuncaptcha.com%2Fcdn%2Ffc|lurl=https%3A%2F%2Faudio-us-east-1.arkoselabs.com|surl=https%3A%2F%2Ffuncaptcha.com"
    },
    "cost":"0.001500",
    "ip":"46.98.54.221",
    "createTime":1472205564,
    "endTime":1472205570,
    "solveCount":"0"
}