FunCaptchaTask: Arkose Labs captchayı (diğer adıyla Funcaptcha) proxy ile geç
Bu tip görev arkoselabs.com bulmacasını çalışanlarımızın tarayıcılarında çözer. Uygulamanız web sitesi adresi, açık anahtarı gönderir ve görev tamamlandıktan sonra bir token alır. Formu Arkoselabs captcha ile göndermek için bu tokeni kullanın.


Örnekler
Görev nesnesi
İlgili eğitim: FunCaptcha ve Geetest için API parametrelerini bulmak için Chrome'da kesme noktalarını nasıl kullanacağınızı öğrenin
Özellik | Tip | Zorunlu | Amaç |
---|---|---|---|
type | Dize | Evet | FunCaptchaTask |
websiteURL | Dize | Evet | Bir hedef web sayfasının adresi. Web sitesinde herhangi bir yerde, hatta üye alanında dahi olabilir. Çalışanlarımız o sayfaya gitmez, bunun yerine ziyareti simüle ederler. |
websitePublicKey | Dize | Evet | Arkose Labs açık anahtarı |
funcaptchaApiJSSubdomain | Dize | Hayır | Bileşen Javascript’inin yüklendiği özel Arkose Labs alt alan adı. Bazı durumlarda gerekir, ancak çoğu Arkose Labs entegrasyonu bu olmadan çalışır. |
data | Dize | Hayır | Arkose Labs uygulaması tarafından istenebilecek ek parametre.
Bu özelliği "blob" değerini bir dizeye dönüştürülmüş nesne olarak göndermek için kullanın. Bunun nasıl görünebileceğini görmek için örneğe bakınız.
{"\blob\":\"HERE_COMES_THE_blob_VALUE\"} |
proxyType | Dize | Evet | Proxy tipi http - normal http/https proxy socks4 - socks4 proxy socks5 - socks5 proxy |
proxyAddress | Dize | Evet | Proxy IP adresi ipv4/ipv6. Yerel ağlardan ana bilgisayar adı veya IP adresi yok. |
proxyPort | Tam sayı | Evet | Proxy port |
proxyLogin | Dize | Hayır | Kimlik doğrulama (standart) gerektiren proxy için kullanıcı adı |
proxyPassword | Dize | Hayır | Proxy şifresi |
userAgent | Dize | Evet | Tarayıcının emülasyonda kullanılan Kullanıcı-Aracısı. Modern bir tarayıcı imzası kullanmanız gerekmektedir, aksi takdirde Google sizden "tarayıcınızı güncellemenizi" ister. |
Talep örneği
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 git@github.com:AdminAnticaptcha/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://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.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 git@github.com:AdminAnticaptcha/anticaptcha-csharp
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 git@github.com:AdminAnticaptcha/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);
}
}
}
Yanıt örneği
hatasız JSON
{
"errorId": 0,
"taskId": 7654321
}
hatalı JSON
{
"errorId": 1,
"errorCode": "ERROR_KEY_DOES_NOT_EXIST",
"errorDescription": "Account authorization key not found in the system"
}
Yanıt örneği
hatasız JSON
{
"errorId": 0,
"taskId": 7654321
}
hatalı JSON
{
"errorId": 1,
"errorCode": "ERROR_KEY_DOES_NOT_EXIST",
"errorDescription": "Account authorization key not found in the system"
}
Çözümü getir
Çözümü talep etmek için getTaskResult yöntemini kullan. İlk talebi yapmadan önce çalışanlara 5 saniye gibi bir süre ver. Çalışan hala meşgulse 3 saniye içinde tekrar dene.
Görev çözüm nesnesi
Özellik | Tip | Amaç |
---|---|---|
token | Dize | Hedef web sitesi üzerindeki gönderme formu ile etkileşime girmek için gerekli olan token dizisi. |
Yanıt örneği
hatasız JSON
{
"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"
}