HCaptchaTask: proxy kullanarak HCaptcha çöz
hCaptcha geliştiricileri, captchalarını "Recaptchanın yerini alan bir yenilik" olarak tanımlamaktadır. Aynı şeyi kendi API’mızda oluşturmaya çalıştık, böylece görev özellikleri "tip" özelliği dışında tıpkı RecaptchaV2Task ile aynı oldu.
ÖNEMLİ: hCaptcha bir IP adresinden çözülen görev sayısına 12 saat başına 3 öge ile sınır getirmiştir. Proxy’nizi kullanarak çözme süreci oluştururken bunu hesaba katın.

Recaptcha V2 örneği
Görev nesnesi
Özellik | Tip | Zorunlu | Amaç | ||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
type | Dize | Evet | HCaptchaTask | ||||||||||||||||||||||||
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. | ||||||||||||||||||||||||
websiteKey | Dize | Evet | hCaptcha site anahtarı | ||||||||||||||||||||||||
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 | Web sitesinde gezinmek için kullandığınız Kullanıcı Aracısını sağlayın. Hcaptcha çözme sürecinde çalışanlarımız aynı değeri kullanacak. | ||||||||||||||||||||||||
isInvisible | Boolean | Hayır | Hcaptcha'nın görünmez olup olmadığını belirtin. Bu, çalışanlarımız için uygun bir widget oluşturacaktır. | ||||||||||||||||||||||||
enterprisePayload | Nesne | Hayır | Enterprise sürümü için Hcaptcha widget'ını oluşturmak için kullanacağımız ek parametreler.
|
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":"HCaptchaTask",
"websiteURL":"https://hcaptcha.com/",
"websiteKey":"00000000-0000-0000-0000-000000000000",
"proxyType":"http",
"proxyAddress":"8.8.8.8",
"proxyPort":8080,
"proxyLogin":"proxyLoginHere",
"proxyPassword":"proxyPasswordHere",
"userAgent":"MODERN_USER_AGENT_HERE",
"isInvisible": false,
}
}' 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":"HCaptchaTask",
"websiteURL":"https://hcaptcha.com/",
"websiteKey":"00000000-0000-0000-0000-000000000000",
"proxyType":"http",
"proxyAddress":"8.8.8.8",
"proxyPort":8080,
"proxyLogin":"proxyLoginHere",
"proxyPassword":"proxyPasswordHere",
"userAgent":"MODERN_USER_AGENT_HERE",
"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("hcaptcha.php");
$api = new HCaptcha();
$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");
//recaptcha key from target website
$api->setWebsiteKey("6LfI9IsUAAAAAKuvopU0hfY8pWADfR_mogXokIIZ");
//proxy access parameters
// DO NOT USE PURCHASED/RENTED PROXIES ON PROXY SERVICES!!!
// THEY WILL NOT WORK!
// USE ONLY PROXIES YOU INSTALL YOURSELF ON YOUR OWN SERVER OR FAST VPS
// USE PROPER PROXY SOFTWARE LIKE SQUID !
// INSTALLATION INSTRUCTIONS:
// https://docker.anti-captcha.com/apidoc/articles/how-to-install-squid
$api->setProxyType("http");
$api->setProxyAddress("8.8.8.8");
$api->setProxyPort(1234);
//optional login and password
$api->setProxyLogin("login");
$api->setProxyPassword("password");
//browser header parameters
$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 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.hcaptchaproxyon import *
solver = hCaptchaProxyon()
solver.set_verbose(1)
solver.set_key("YOUR_API_KEY_HERE")
solver.set_website_url("https://hcaptcha.com/")
solver.set_website_key("00000000-0000-0000-0000-000000000000")
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")
solver.set_cookies("test=true")
# 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");
//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.solveHCaptchaProxyOn('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',
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 HCaptcha
{
ClientKey = "YOUR_API_KEY_HERE",
WebsiteUrl = new Uri("http://makeawebsitehub.com/recaptcha/test.php"),
WebsiteKey = "6LfI9IsUAAAAAKuvopU0hfY8pWADfR_mogXokIIZ",
ProxyAddress = "xxx.xx.xx.xx",
ProxyPort = 1234,
ProxyLogin = "login",
ProxyPassword = "password",
UserAgent = "Opera 6.0"
};
// 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.HCaptcha;
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);
HCaptcha api = new HCaptcha();
api.setClientKey("API_KEY_HERE");
api.setWebsiteUrl(new URL("http://makeawebsitehub.com/HCaptcha/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");
// proxy access parameters
// DO NOT USE PURCHASED/RENTED PROXIES WITH PROXY SERVICES!!!
// THEY WILL NOT WORK!
// USE ONLY PROXIES YOU INSTALL YOURSELF ON YOUR OWN SERVER OR FAST VPS
// USE PROPER PROXY SOFTWARE LIKE SQUID !
// INSTALLATION INSTRUCTIONS:
// https://docker.anti-captcha.com/apidoc/articles/how-to-install-squid
api.setProxyType(NoCaptcha.ProxyTypeOption.HTTP);
api.setProxyAddress("xx.xxx.xx.xx");
api.setProxyPort(8282);
api.setProxyLogin("login");
api.setProxyPassword("password");
// 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);
}
}
}
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ç |
---|---|---|
gRecaptchaResponse | 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":
{
"gRecaptchaResponse":"3AHJ_VuvYIBNBW5yyv0zRYJ75VkOKvhKj9_xGBJKnQimF72rfoq3Iy-DyGHMwLAo6a3"
},
"cost":"0.001500",
"ip":"46.98.54.221",
"createTime":1472205564,
"endTime":1472205570,
"solveCount":"0"
}