HCaptchaTaskProxyless: HCaptcha را بدون پروکسی حل میکند
hCaptcha کپچای "جایگزین پایین افتادنی ریکپچا" را صدا میزند. ما تلاش کردیم تا حالت مشابهی را در API خودمان ایجاد کنیم بهصورتی که خصوصیات وظیفه به جز خصوصیت "type" کاملاً مشابه با RecaptchaV2TaskProxyless باشند.

مثال Recaptcha V2
شیء وظیفه
خصوصیت | نوع | موردنیاز | هدف | ||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
type | رشته | بله | HCaptchaTaskProxyless | ||||||||||||||||||||||||
websiteURL | رشته | بله | آدرس صفحه وب هدف. میتواند در هرجایی در وبسایت حتی بخش اعضا قرار گرفته باشد. کارگران ما به آنجا نمیروند بلکه در عوض بازدید را شبیهسازی میکنند. | ||||||||||||||||||||||||
websiteKey | رشته | بله | کلید سایت hCaptcha | ||||||||||||||||||||||||
userAgent | رشته | بله | عامل کاربری را که برای پیمایش در وب سایت استفاده می کنید، ارائه دهید. کارگران ما در طول فرآیند حل Hcaptcha از همان مقدار استفاده خواهند کرد. | ||||||||||||||||||||||||
isInvisible | بولی | خیر | مشخص کنید که آیا Hcaptcha نامرئی است یا خیر. این یک ویجت مناسب برای کارگران ما ارائه می دهد. | ||||||||||||||||||||||||
enterprisePayload | شیء | خیر | پارامترهای اضافی که ما از آنها برای رندر ویجت Hcaptcha برای نسخه Enterprise استفاده خواهیم کرد.
|
نمونه درخواست
CURL
curl -i -H "Accept: application/json" \
-H "Content-Type: application/json" \
-X POST -d '{
"clientKey":"YOUR_API_KEY_HERE",
"task":
{
"type":"HCaptchaTaskProxyless",
"websiteURL":"https://hcaptcha.com/",
"websiteKey":"00000000-0000-0000-0000-000000000000",
"isInvisible": false,
"userAgent":"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_11_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/52.0.2743.116"
}
}' https://api.anti-captcha.com/createTask
# Enterprise version:
curl -i -H "Accept: application/json" \
-H "Content-Type: application/json" \
-X POST -d '{
"clientKey":"YOUR_API_KEY_HERE",
"task":
{
"type":"HCaptchaTaskProxyless",
"websiteURL":"https://hcaptcha.com/",
"websiteKey":"00000000-0000-0000-0000-000000000000",
"userAgent":"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_11_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/52.0.2743.116",
"isInvisible": false,
"enterprisePayload": {
"rqdata": "rqdata value from target website",
"sentry": true
}
}
}' https://api.anti-captcha.com/createTask
PHP
<?php
//git clone git@github.com:AdminAnticaptcha/anticaptcha-php.git
include("anticaptcha.php");
include("hcaptchaproxyless.php");
$api = new HCaptchaProxyless();
$api->setVerboseMode(true);
//your anti-captcha.com account key
$api->setKey("YOUR_API_KEY_HERE");
//target website address
$api->setWebsiteURL("http://makeawebsitehub.com/recaptcha/test.php");
//hcaptcha key from target website
$api->setWebsiteKey("f9630567-0000-0000-0000-9c91c6276dff");
//optional invisible Hcaptcha flag
//$api->setIsInvisible();
//set Enterprise parameters this way:
//$api->setEnterprisePayload([
// "rqdata" => "somerqdata",
// "sentry" => true
//]);
//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 "\n";
echo "your hcaptcha token: $gResponse\n\n";
}
Python
#pip3 install anticaptchaofficial
from anticaptchaofficial.hcaptchaproxyless import *
solver = hCaptchaProxyless()
solver.set_verbose(1)
solver.set_key("YOUR_API_KEY_HERE")
solver.set_website_url("https://website.com")
solver.set_website_key("SITE_KEY")
# tell API that Hcaptcha is invisible
#solver.set_is_invisible(1)
# set here parameters like rqdata, sentry, apiEndpoint, endpoint, reportapi, assethost, imghost
#solver.set_enterprise_payload({
# "rqdata": "rq data value from target website",
# "sentry": True
#})
g_response = solver.solve_and_return_solution()
if g_response != 0:
print "g-response: "+g_response
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");
//substitute with your own user agent
const userAgent = "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_11_6) AppleWebKit/537.123 (KHTML, like Gecko) Chrome/52.0.2743.116";
//set Hcaptcha Enterprise payload if any
const enterprisePayload = {
"rqdata": "rqdata from target website",
"sentry": true
//etc
}
//if it is non-Enteprise, set to null
//const enterprisePayload = null;
//set to true if you want us to render it in invisible mode
const isInvisible = false;
ac.setAPIKey('YOUR_API_KEY_HERE');
ac.solveHCaptchaProxyless('http://DOMAIN.COM', 'WEBSITE_KEY', userAgent, enterprisePayload, isInvisible)
.then(gresponse => {
console.log('g-response: '+gresponse);
})
.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 HCaptchaProxyless
{
ClientKey = "YOUR_API_KEY_HERE",
WebsiteUrl = new Uri("http://makeawebsitehub.com/recaptcha/test.php"),
WebsiteKey = "51829642-0000-0000-896c-594f89d700cc",
UserAgent = "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_11_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/52.0.2743.116"
};
// use to set invisible mode
//api.IsInvisible = true
// use to set Hcaptcha Enterprise parameters like rqdata, sentry, apiEndpoint, endpoint, reportapi, assethost, imghost
//api.EnterprisePayload.Add("rqdata", "rqdata value from target website");
//api.EnterprisePayload.Add("sentry", "true");
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().GRecaptchaResponse, DebugHelper.Type.Success);
}
}
}
Java
//git clone git@github.com:AdminAnticaptcha/anticaptcha-java.git
package com.anti_captcha;
import com.anti_captcha.Api.HCaptchaProxyless;
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);
HCaptchaProxyless api = new HCaptchaProxyless();
api.setClientKey("YOUR_API_KEY_HERE");
api.setWebsiteUrl(new URL("http://makeawebsitehub.com/recaptcha/test.php"));
api.setWebsiteKey("6LfI9IsUAAAAAKuvopU0hfY8pWADfR_mogXokIIZ");
api.setUserAgent("Mozilla/5.0 (Macintosh; Intel Mac OS X 10_11_6) AppleWebKit/537.36 " +
"(KHTML, like Gecko) Chrome/52.0.2743.116");
// uncomment to tell API that HCaptcha is in invisible mode
// api.setIsInvisible(true);
// uncomment and use for HCaptcha Enterprise version if you need to set parameters like rqdata, sentry, apiEndpoint, endpoint, reportapi, assethost, imghost
// JSONObject enterprisePayload = new JSONObject();
// try {
// enterprisePayload.put("rqdata", "rqdata from the target website");
// enterprisePayload.put("sentry", Boolean.TRUE);
// enterprisePayload.put("apiEndpoint", "https://...");
// } catch (Exception e) {
// DebugHelper.out("JSON error: "+e.getMessage(), DebugHelper.Type.ERROR);
// return;
// }
// api.setEnterprisePayload(enterprisePayload);
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: " + api.getTaskSolution().getGRecaptchaResponse(), 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"
}
بازیابی راهحل
از متد getTaskResult برای درخواست راهحل استفاده کنید. قبل از اینکه درخواست اول را بفرستید، کمی به کارگر فرصت بدهید، مثلاً 5 ثانیه به او وقت بدهید. اگر کارگر همچنان شلوغ بود، 3 ثانیه بعد مجدداً تلاش کنید.
شیء راهحل وظیفه
خصوصیت | نوع | هدف |
---|---|---|
gRecaptchaResponse | رشته | رشته توکن که برای تعامل با فرم ارسال در وبسایت هدف لازم است. |
نمونه پاسخ
JSON بدون هیچ خطایی
{
"errorId":0,
"status":"ready",
"solution":
{
"gRecaptchaResponse":"3AHJ_VuvYIBNBW5yyv0zRYJ75VkOKvhKj9_xGBJKnQimF72rfoq3Iy-DyGHMwLAo6a3"
},
"cost":"0.001500",
"ip":"46.98.54.221",
"createTime":1472205564,
"endTime":1472205570,
"solveCount":"0"
}