Dokumentationsmenü

FuncaptchaTaskProxyless: Arkose Labs Captcha (aka Funcaptcha) ohne Proxy umgehen

Diese Art von Aufgabe löst Arkose Labs Captcha (oder Funcaptcha) ohne Proxy. Die Aufgabe wird über unsere eigenen Proxy-Server und/oder die IP-Adressen der Arbeiter ausgeführt.

Die Arkose Labs-API liefert dem Website-Besitzer Informationen über die IP-Adresse des Lösers. Es lohnt sich jedoch, zuerst zu versuchen, Captcha ohne Proxy zu umgehen, und wenn es nicht funktioniert - wechseln Sie zu FuncaptchaTask mit Proxy.

Beispiele

Aufgabenobjekt

Wert Art Erforderlich Zweck
type String Ja FunCaptchaTaskProxyless
websiteURL String Ja Adresse einer Ziel-Webseite. Kann sich an beliebiger Stelle auf der Website befinden, auch in einem Mitgliederbereich. Unsere Arbeiter navigieren nicht dorthin, sondern simulieren den Besuch.
websitePublicKey String Ja Arkose Labs öffentlicher Key
funcaptchaApiJSSubdomain String Nein Benutzerdefinierte Arkose Labs-Subdomain, von der das Widget-Javascript geladen wird. Für einige Fälle erforderlich, aber die meisten Arkose Labs-Integrationen laufen ohne.
data String Nein Zusätzlicher Parameter, der von der Arkose Labs-Implementierung benötigt werden kann. Verwenden Sie diese Eigenschaft, um den Wert "blob" als in eine Zeichenfolge konvertiertes Objekt zu senden. Siehe Beispiel, wie es aussehen kann.
{"\blob\":\"HERE_COMES_THE_blob_VALUE\"}

Anfrage-Beispiel

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);
        }

    }

}

        

Antwort-Beispiel

JSON ohne Fehler
          {
    "errorId": 0,
    "taskId": 7654321
}
        
JSON mit Fehler
          {
    "errorId": 1,
    "errorCode": "ERROR_KEY_DOES_NOT_EXIST",
    "errorDescription": "Account authorization key not found in the system"
}
        

Lösung abrufen

Verwenden Sie die Methode getTaskResult, um die Lösung anzufordern. Geben Sie dem Arbeiter etwas Zeit, ca. 5 Sekunden, bevor Sie die Anfrage stellen. Falls der Arbeiter noch beschäftigt ist, warten Sie weitere 3 Sekunden.

Aufgabenlösungsobjekt

Wert Art Zweck
token String Token-String, der für die Interaktion mit dem Einreichungsformular auf der Ziel-Website erforderlich ist.

Antwort-Beispiel

JSON ohne Fehler
          {
    "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"
}