होम दस्तावेज़ ट्यूटोरिअल साइन इन करें
सपोर्टेड टास्क टाइप
API विधियाँ
आर्टिकल
ट्यूटोरिअल
GitHub
दस्तावेज़ मेन्यू

hCaptchaTask: किसी प्रॉक्सी के माध्यम से hCaptcha हल करें

hCaptcha के डेवलपर अपने कैप्चा को "रीकैप्चा की एक ड्रॉप-इन रिप्लेसमेंट" कहते हैं। हमने अपने API में भी इसी को बनाने की कोशिश की है, जिसके चलते एक "टाइप" प्रॉपर्टी को छोड़कर इसकी बाकी सभी टास्क प्रॉपर्टियाँ RecaptchaV2Task बिल्कुल जैसी ही हैं।

उपयोगकर्ता-एजेंट मूल्य के बारे में महत्वपूर्ण सूचना। पहले कार्यों के लिए अपने उपयोगकर्ता-एजेंट को निर्दिष्ट करना संभव था, लेकिन यह बदल गया था। इसके बजाय हम कार्यकर्ता का उपयोगकर्ता-एजेंट प्रदान करते हैं जिसका उपयोग आपको Hcaptcha के भुगतान किए गए संस्करण को बायपास करने के लिए करना होगा। इसे बदल दिया गया था क्योंकि आजकल एक विदेशी उपयोगकर्ता-एजेंट को दूसरे प्लेटफॉर्म में अनुकरण करना लगभग असंभव है, उदाहरण के लिए फ़ायरफ़ॉक्स में क्रोम उपयोगकर्ता-एजेंट। ब्राउज़रों में बड़ी संख्या में द्वितीयक कलाकृतियाँ होती हैं, इसके अलावा navigator.userAgent, जो विशेष रूप से एक या दूसरे प्लेटफ़ॉर्म से संबंधित होती हैं।

कैप्चा उदाहरण

टास्क ऑब्जेक्ट

प्रॉपर्टी टाइप आवश्यक लक्ष्य
type स्ट्रिंग हाँ HCaptchaTask
websiteURL स्ट्रिंग हाँ किसी लक्षित वेब पेज का पता। यह वेबसाइट में कहीं भी पाया जा सकता है, किसी सदस्य वाले एरिया में भी। हमारे कर्मचारी वहां जाते तो नहीं, पर अपने जाने की सिमुलेशन ज़रूर कर देते हैं।
websiteKey स्ट्रिंग हाँ hCaptcha साइट कुंजी
proxyType स्ट्रिंग हाँ प्रॉक्सी प्रकार
http - सामान्य http/https प्रॉक्सी
socks4 - socks4 प्रॉक्सी
socks5 - socks5 प्रॉक्सी
proxyAddress स्ट्रिंग हाँ प्रॉक्सी IP पता ipv4/ipv6. लोकल नेटवर्कों वाले कोई होस्ट नेम या IP पते मौजूद नहीं हैं।
proxyPort इन्टिजर हाँ प्रॉक्सी पोर्ट
proxyLogin स्ट्रिंग नहीं प्रॉक्सी वाला लॉगइन, जिसके लिए ऑथरायज़ेशन (बेसिक) आवश्यक होती है
proxyPassword स्ट्रिंग नहीं प्रॉक्सी पासवर्ड
userAgent स्ट्रिंग हाँ वेबसाइट नेविगेट करने के लिए आप जिस उपयोगकर्ता एजेंट का उपयोग कर रहे हैं, उसे प्रदान करें। हमारे कार्यकर्ता Hcaptcha समाधान प्रक्रिया के दौरान समान मूल्य का उपयोग करेंगे।
बहिष्कृत। इसके बजाय, हमारे कर्मचारियों से उपयोगकर्ता-एजेंट का उपयोग करें जो "getTaskResult" विधि द्वारा लौटाया जाता है।
isInvisible Boolean नहीं निर्दिष्ट करें कि Hcaptcha अदृश्य है या नहीं। यह हमारे कार्यकर्ताओं के लिए एक उपयुक्त विजेट प्रस्तुत करेगा।
enterprisePayload ऑब्जेक्ट नहीं अतिरिक्त पैरामीटर जिनका उपयोग हम एंटरप्राइज़ संस्करण के लिए Hcaptcha विजेट रेंडर करने के लिए करेंगे।

प्रॉपर्टी टाइप आवश्यक
rqdata स्ट्रिंग नहीं
sentry Boolean नहीं
apiEndpoint स्ट्रिंग नहीं
endpoint स्ट्रिंग नहीं
reportapi स्ट्रिंग नहीं
assethost स्ट्रिंग नहीं
imghost स्ट्रिंग नहीं

अनुरोध का उदाहरण

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",
            "isInvisible": false,
        },
    "softId": 0
}' 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",
            "isInvisible": false,
            "enterprisePayload": {
              "rqdata": "rqdata value from target website",
              "sentry": true
            }
        },
    "softId": 0
}' 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");

//hcaptcha 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://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");

//Specify softId to earn 10% commission with your app.
//Get your softId here: https://anti-captcha.com/clients/tools/devcenter
$api->setSoftId(0);

//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
#})

# 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)

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');

//Specify softId to earn 10% commission with your app.
//Get your softId here: https://anti-captcha.com/clients/tools/devcenter
ac.setSoftId(0);

ac.solveHCaptchaProxyOn('http://DOMAIN.COM',
    'WEBSITE_KEY',
    'http', //http, socks4, socks5
    'PROXY_ADDRESS',
    'PROXY_PORT',
    'PROXY_LOGIN',
    'PROXY_PASSWORD',
    '',
    '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",
                // Specify softId to earn 10% commission with your app.
                // Get your softId here:
                // https://anti-captcha.com/clients/tools/devcenter
                SoftId = 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");

        // 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://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);

        //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: " + 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 स्ट्रिंग लक्षित वेबसाइट पर सबमिट किए गए फॉर्म से इंटरैक्ट करने के लिए आवश्यक टोकन स्ट्रिंग।
respKey स्ट्रिंग उपलब्ध होने पर "window.hcaptcha.getRespKey ()" फ़ंक्शन का आउटपुट। कुछ वेबसाइट अतिरिक्त सत्यापन के लिए इसका उपयोग करती हैं।
userAgent स्ट्रिंग कार्यकर्ता के ब्राउज़र का उपयोगकर्ता-एजेंट। जब आप प्रतिक्रिया टोकन जमा करते हैं तो इसका इस्तेमाल करें।

रिस्पांस का उदाहरण

एरर-मुक्त JSON
          {
    "errorId":0,
    "status":"ready",
    "solution":
    {
        "gRecaptchaResponse":"3AHJ_VuvYIBNBW5yyv0zRYJ75VkOKvhKj9_xGBJKnQimF72rfoq3Iy-DyGHMwLAo6a3......",
        "respKey":"E0_eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJkYXRhIjoiQk5vb1JuZ0FPSHBCM2EyWURSSC......",
        "userAgent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:102.0) Gecko/20100101 Firefox/102.0"
    },
    "cost":"0.001500",
    "ip":"46.98.54.221",
    "createTime":1472205564,
    "endTime":1472205570,
    "solveCount":"0"
}