FunCaptchaTask: 프록시로 Arkose Labs 캡챠(즉, 펀캡챠)를 우회하세요.
이 유형의 태스크는 저희 작업자 브라우저에서 arkoselabs.com 퍼즐을 풉니다. 앱에서 웹사이트 주소, 퍼블릭 키를 제출하고 태스크 완료 이후에 토큰을 받습니다. 이 토큰을 이용하여 Arkoselabs 캡챠로 양식을 제출하세요.


예시
태스크 객체
프로퍼티 | 유형 | 필수 | 목적 |
---|---|---|---|
type | 스트링 | 예 | FunCaptchaTask |
websiteURL | 스트링 | 예 | 타겟 웹페이지 주소. 웹사이트의 어디에든지, 심지어 고객 페이지에도 위치할 수 있습니다. 저희 작업자는 이 부분을 다루지 않지만, 대신에 이 페이지 방문을 시뮬레이션합니다. |
websitePublicKey | 스트링 | 예 | Arkose Labs 퍼블릭 키 |
funcaptchaApiJSSubdomain | 스트링 | 아니요 | 위젯 자바스크립트를 불러오는 맞춤형 Arkose Labs 하위 도메인. 일부 사례에 필요하지만, 대부분의 Arkose Labs 톹합은 이러한 하위 도메인 없이 이루어집니다. |
data | 스트링 | 아니요 | Arkose Labs 시행에 필요할 수 있는 추가 매개 변수. 스트링으로 전환된 객체로서
Use this property to send "blob" 값. 어떤 모습일지 예시를 확인하세요.
{"\blob\":\"HERE_COMES_THE_blob_VALUE\"} |
proxyType | 스트링 | 예 | 프록시 유형 http - 일반 http/https proxy socks4 - socks4 proxy socks5 - socks5 proxy |
proxyAddress | 스트링 | 예 | 프록시 IP 주소 ipv4/ipv6. 로컬 네트워크의 호스트명 혹은 IP 주소 없음 |
proxyPort | 정수 | 예 | 프록시 포트 |
proxyLogin | 스트링 | 아니요 | 승인이 필요한 프록시 로그인(기본) |
proxyPassword | 스트링 | 아니요 | 프록시 비밀번호 |
userAgent | 스트링 | 예 | 에뮬레이션에 이용되는 브라우저의 사용자 에이전트. 최신 브라우저의 서명을 이용해야 합니다. 그렇지 않으면, 구글에서 "update your browser"를 요청할 것입니다. |
예시 요청
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);
}
}
}
반응 예시
JSON(오류 없음)
{
"errorId": 0,
"taskId": 7654321
}
JSON(오류 있음)
{
"errorId": 1,
"errorCode": "ERROR_KEY_DOES_NOT_EXIST",
"errorDescription": "Account authorization key not found in the system"
}
반응 예시
JSON(오류 없음)
{
"errorId": 0,
"taskId": 7654321
}
JSON(오류 있음)
{
"errorId": 1,
"errorCode": "ERROR_KEY_DOES_NOT_EXIST",
"errorDescription": "Account authorization key not found in the system"
}
솔루션을 불러오세요.
메소드 getTaskResult을(를) 이용하여 솔루션을 요청하세요. 첫 요청을 하기 이전에 5초 정도 작업자에게 시간을 주세요. 작업자가 아직 바쁘다면, 3초 후에 다시 시도하세요.
태스크 솔루션 객체
프로퍼티 | 유형 | 목적 |
---|---|---|
token | 스트링 | 타겟 웹사이트의 제출 양식과 상호작용하는 데 필요한 토큰 스트링 |
반응 예시
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"
}