FunCaptchaTask: Arkose Labs captcha (aka Funcaptcha) met proxy omzeilen
Dit soort taken lost arkoselabs.com op in de browsers van onze medewerkers. Uw app dient het websiteadres en de openbare sleutel in en ontvangt een token nadat de taak voltooid is. Gebruik deze token om het formulier met de Arkoselabs captcha in te dienen.


Voorbeelden
Taak object
Gerelateerde tutorial: Leer hoe je breekpunten in Chrome kunt gebruiken om API-parameters te vinden voor FunCaptcha en Geetest.
Eigenschap | Type | Verplicht | Doel |
---|---|---|---|
type | String | Ja | FunCaptchaTask |
websiteURL | String | Ja | Adres van een doelpagina. Kan overal op de website geplaatst zijn, zelfs in een ledengedeelte. Onze medewerkers navigeren daar niet heen, simuleren in plaats daarvan het bezoek. |
websitePublicKey | String | Ja | Arkose Labs openbare sleutel |
funcaptchaApiJSSubdomain | String | No | Aangepast Arkose Labs subdomein van waaruit de widget Javascript wordt geladen. Vereist in sommige gevallen, maar de meeste Arkose Labs integraties draaien zonder. |
data | String | No | Extra parameter die vereist kan zijn door Arkose Labs implementatie.
Gebruik deze eigenschap om "blob" waarde te verzenden als een object geconverteerd naar string. Zie voorbeeld hoe het eruit kan zien.
{"\blob\":\"HERE_COMES_THE_blob_VALUE\"} |
proxyType | String | Ja | Type proxy http - over het algemeen http/https proxy socks4 - socks4 proxy socks5 - socks5 proxy |
proxyAddress | String | Ja | Proxy IP-adres ipv4/ipv6. Geen hostnamen of IP-adressen van lokale netwerken. |
proxyPort | Integer | Ja | Proxy poort |
proxyLogin | String | No | Login voor proxy die autorisatie vereist (basis) |
proxyPassword | String | No | Proxy wachtwoord |
userAgent | String | Ja | De User-Agent van de browser die wordt gebruikt in de emulatie. Het is verplicht dat u een handtekening van een moderne browser gebruikt, anders zal Google u vragen om uw "browser bij te werken". |
Voorbeeld aanvraag
CURL
curl -i -H "Accept: application/json" \
-H "Content-Type: application/json" \
-X POST -d '{
"clientKey":"YOUR_API_KEY_HERE",
"task":
{
"type":"FunCaptchaTask",
"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",
"proxyType":"http",
"proxyAddress":"8.8.8.8",
"proxyPort":8080,
"proxyLogin":"proxyLoginHere",
"proxyPassword":"proxyPasswordHere",
"userAgent":"MODERN_USER_AGENT_HERE"
},
"softId": 0
}' https://api.anti-captcha.com/createTask
PHP
<?php
//git clone https://git.anti-captcha.com/sup/anticaptcha-php.git
include("anticaptcha.php");
include("funcaptcha.php");
$api = new FunCaptcha();
$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("custom-api.arkoselabs.com");
//optional data[blob] value
//$api->setDataBlob("DATA_BLOB_VALUE_HERE");
//proxy access parameters
$api->setProxyType("http");
$api->setProxyAddress("8.8.8.8");
$api->setProxyPort(8080);
//optional login and password
$api->setProxyLogin("theLogin");
$api->setProxyPassword("thePassword");
//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.funcaptchaproxyon import *
solver = funcaptchaProxyon()
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\"}")
solver.set_proxy_address("PROXY_ADDRESS")
solver.set_proxy_port(1234)
solver.set_proxy_login("proxylogin")
solver.set_proxy_password("proxypassword")
solver.set_user_agent("Mozilla/5.0")
# 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 install @antiadmin/anticaptchaofficial
//https://git.anti-captcha.com/sup/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.solveFunCaptchaProxyOn('http://DOMAIN.COM',
'WEBSITE_KEY',
'http', //http, socks4, socks5
'PROXY_ADDRESS',
'PROXY_PORT',
'PROXY_LOGIN',
'PROXY_PASSWORD',
'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_11_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/52.0.2743.116',
'some=cookies')
.then(token => {
console.log('response: '+token);
})
.catch(error => console.log('test received error '+error));
C#
//git clone https://git.anti-captcha.com/sup/anticaptcha-csharp.git
using System;
using Anticaptcha_example.Api;
using Anticaptcha_example.Helper;
using Newtonsoft.Json.Linq;
namespace Anticaptcha_example
{
internal class Program
{
private static void Main() {
DebugHelper.VerboseMode = true;
var api = new FunCaptcha
{
ClientKey = "YOUR_API_KEY_HERE",
WebsiteUrl = new Uri("http://http.myjino.ru/funcaptcha_test/"),
WebsitePublicKey = "DE0B0BB7-1EE4-4D70-1853-31B835D4506B",
UserAgent =
"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_11_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/52.0.2743.116",
// proxy access parameters
ProxyType = AnticaptchaBase.ProxyTypeOption.Http,
ProxyAddress = "xx.xx.xx.xx",
ProxyPort = 8282,
ProxyLogin = "123",
ProxyPassword = "456",
// Specify softId to earn 10% commission with your app.
// Get your softId here:
// https://anti-captcha.com/clients/tools/devcenter
SoftId = 0
};
if (!api.CreateTask())
DebugHelper.Out("API v2 send failed. " + api.ErrorMessage, DebugHelper.Type.Error);
else if (!api.WaitForResult())
DebugHelper.Out("Could not solve the captcha.", DebugHelper.Type.Error);
else
DebugHelper.Out("Result: " + api.GetTaskSolution().Token, DebugHelper.Type.Success);
}
}
}
Java
//git clone https://git.anti-captcha.com/sup/anticaptcha-java.git
package com.anti_captcha;
import com.anti_captcha.Api.FunCaptcha;
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);
FunCaptcha api = new FunCaptcha();
api.setClientKey("YOUR_API_KEY_HERE");
api.setWebsiteUrl(new URL("http://mywebsite.com/funcaptcha/"));
api.setWebsitePublicKey("3B24C078-2DF1-771D-913A-11F824CD5A7C");
api.setUserAgent("Mozilla/5.0 (Macintosh; Intel Mac OS X 10_11_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/52.0.2743.116");
//optional parameters, read the docs, be careful!
api.setApiSubdomain("custom-domain-api.arkoselabs.com");
api.setDataBlob("{\"blob\":\"DATA_BLOB_VALUE_HERE\"}");
// proxy access parameters
api.setProxyType(NoCaptcha.ProxyTypeOption.HTTP);
api.setProxyAddress("8.8.8.8");
api.setProxyPort(8080);
api.setProxyLogin("theLogin");
api.setProxyPassword("thePassword");
//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);
}
}
}
Voorbeeld reactie
JSON zonder fouten
{
"errorId": 0,
"taskId": 7654321
}
JSON met een fout
{
"errorId": 1,
"errorCode": "ERROR_KEY_DOES_NOT_EXIST",
"errorDescription": "Account authorization key not found in the system"
}
Voorbeeld reactie
JSON zonder fouten
{
"errorId": 0,
"taskId": 7654321
}
JSON met een fout
{
"errorId": 1,
"errorCode": "ERROR_KEY_DOES_NOT_EXIST",
"errorDescription": "Account authorization key not found in the system"
}
Haal de oplossing op
Gebruik methode getTaskResult om de oplossing aan te vragen. Geef een medewerker wat tijd, zoals 5 seconden, voordat u uw eerste aanvraag doet. Als de medewerkers nog steeds bezet is, probeert u het na 3 seconden.
Taak oplossing object
Eigenschap | Type | Doel |
---|---|---|
token | String | Token string die vereist is voor het samenwerken met het ingediende formulier op een doelwebsite. |
Voorbeeld reactie
JSON zonder fouten
{
"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"
}