FuncaptchaTaskProxyless: i-bypass ang Arkose Labs na captcha (aka Funcaptcha) ng walang proxy
Ang ganitong uri ng gawain ay nilulutas ang Arkose Labs na captcha (o Funcaptcha) ng walang proxy. Ang gawain ay lulutasin sa pamamagitan ng sarili naming mga proxy server at/o IP address ng mga manggagawa.
Ang API ng Arkose Labs ay nagbibigay ng impormasyon sa may-ari ng website tungkol sa IP address ng naglulutas. Pero sulit naman na subukang i-bypass muna ang captcha ng walang proxy, at kapag hindi ito gumana - ilipat sa FuncaptchaTask na may proxy.




Mga halimbawa
Bagay ng gawain
Kaugnay na tutorial: Matutunan kung paano gumamit ng mga breakpoint sa Chrome upang mahanap ang mga parameter ng API para sa FunCaptcha at Geetest
Katangian | Uri | Kinakailangan | Layunin |
---|---|---|---|
type | String | Oo | FunCaptchaTaskProxyless |
websiteURL | String | Oo | Adres ng puntiryang web page. Maaaring mahanap saan man sa web site, kahit sa lugar ng miyembro. Ang aming mga manggagawa ay hindi maaaring pumunta doon, ngunit sa halip isi-simulate ang pagbisita. |
websitePublicKey | String | Oo | Pampublikong susi ng Arkose Labs |
funcaptchaApiJSSubdomain | String | Hindi | Pasadyang Arkose Labs na subdomain kung saan nilo-load ang widget na Javascript. Kinakailangan para sa ibang mga kaso, ngunit kalimitan ng mga Arkose Labs na integrasyon ay gumagana ng wala ito. |
data | String | Hindi | Karagdagang parametro na maaaring kailangan ng Arkose Labs na implementasyon.
Gamitin ang katangiang ito para ipadala ang "blob" na halaga bilang bagay na na-convert sa string. Tingnan ang halimbawa kung paano ito magmumukha.
{"\blob\":\"HERE_COMES_THE_blob_VALUE\"} |
Halimbawa ng kahilingan
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 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.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);
}
}
}
Halimbawa ng tugon
JSON na walang mga error
{
"errorId": 0,
"taskId": 7654321
}
JSON na may error
{
"errorId": 1,
"errorCode": "ERROR_KEY_DOES_NOT_EXIST",
"errorDescription": "Account authorization key not found in the system"
}
Kunin ang solusyon
Gamitin ang metodong getTaskResult para hilingin ang solusyon. Bigyan ang manggagawa ng ilang oras, gaya ng 5 segundo, bago gumawa ng unang kahilingan. Kapag ang manggagawa ay abala pa, subukang muli sa loob ng 3 segundo.
Bagay ng solusyon ng gawain
Katangian | Uri | Layunin |
---|---|---|
token | String | Ang string ng token na kinakailangan para sa pakikipag-ugnayan sa form sa pagsumite ng puntiryang website. |
Halimbawa ng tugon
JSON na walang mga error
{
"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"
}