ডকুমেন্টেশন মেনু

GeeTestTaskProxyless: প্রক্সি ছাড়া geetest.com থেকে ক্যাপচা সমাধান করুন

এই ধরণের টাস্কটি আমাদের কর্মী ব্রাউজারগুলিতে GeeTest ক্যাপচাকে সমাধান করে। আপনার অ্যাপ্লিকেশন ওয়েবসাইট ঠিকানা, জিটি কী, চ্যালেঞ্জ কী জমা দেয় এবং টাস্ক সমাপ্তির পরে ৩টি টোকেন সমন্বিত একটি সমাধান গ্রহণ করে।

আমাদের প্রক্সি প্রয়োজন হয় না এবং আমরা আমাদের নিজস্ব IP ঠিকানাগুলি থেকে এটি সমাধান করি, এছাড়া দিয়ে সবকিছু GeeTestTask এর মতো।

উদাহরণসমূহ

টাস্ক অবজেক্ট

প্রোপার্টি ধরণ জরুরী উদ্দেশ্য
type স্ট্রিং হ্যাঁ GeeTestTaskProxyless
websiteURL স্ট্রিং হ্যাঁ একটি টার্গেট ওয়েব পেজের ঠিকানা। ওয়েব সাইটে যে কোনও জায়গায় অবস্থিত হতে পারে, মেম্বার এরিয়াতেও। আমাদের কর্মীরা সেখানে চলাচল করে না, পরিবর্তে ভিজিটটি অনুকরণ করে।
gt স্ট্রিং হ্যাঁ ডোমেন পাব্লিক কী, খুব কমই আপডেট হয়।
challenge স্ট্রিং হ্যাঁ টোকন কী পরিবর্তন করা। প্রতিটি ক্যাপচার জন্য একটি নতুন থেকে গ্রহণ করা নিশ্চিত করুন, অন্যথায় আপনাকে ত্রুটি টাস্কের জন্য চার্জ করা হবে।
geetestApiServerSubdomain স্ট্রিং না ঐচ্ছিক API সাবডোমেন। কিছু বাস্তবায়নের জন্য প্রয়োজন হতে পারে।
geetestGetLib স্ট্রিং না কিছু বাস্তবায়নের জন্য প্রয়োজনীয়। একটি স্ট্রিং এ এনকোড করে JSON প্রেরণ করুন। ব্রাউজার ডেভেলপার টুলে মানটি সনাক্ত করা যায়। "initGeetest" ফাংশনের কল করার আগে একটি ব্রেকপয়েন্ট দিন।

উদাহরণের অনুরোধ

CURL
          curl -i -H "Accept: application/json" \
     -H "Content-Type: application/json" \
     -X POST -d '{
    "clientKey":"YOUR_API_KEY_HERE",
    "task":
        {
            "type":"GeeTestTaskProxyless",
            "websiteURL":"http://mywebsite.com/geetest/test.php",
            "gt":"874703612e5cac182812a00e273aad0d",
            "challenge":"a559b82bca2c500101a1c8a4f4204742"
        }
}' https://api.anti-captcha.com/createTask
        
PHP
          <?php

//git clone git@github.com:AdminAnticaptcha/anticaptcha-php.git

include("anticaptcha.php");
include("geetestproxyless.php");

$api = new GeeTestProxyless();
$api->setVerboseMode(true);

//grabbing challenge key ... ";
$data = json_decode(file_get_contents("https://www.geetest.com/demo/gt/register-enIcon-official?t=1547634498036"), true);

echo "grabbed data:\n";
print_r($data);

if (!isset($data["gt"]) && !isset($data["challange"])) {
    echo "something went wrong, probably example was changed or network is inaccessible\n";
    exit;
}

$challenge  =   $data["challenge"];
$gt         =   $data["gt"];

echo "setting gt=$gt, challenge=$challenge\n";
$api->setWebsiteURL("https://www.geetest.com/en/");
$api->setGTKey($gt);
$api->setChallenge($challenge);

//optional API subdomain, make sure you understand what to set here
$api->setAPISubdomain("optional.subdomain.api.geetest.com");

//read the docs about this optional parameter
$api->setGeetestLib("{\"customlibs\":\"url-to-lib.js\"}");

//your anti-captcha.com account key
$api->setKey("YOUR_API_KEY_HERE");


//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 {

    echo "your geetest tokens:\n";
    print_r($api->getTaskSolution());

}
        
Python
          #pip3 install anticaptchaofficial

from anticaptchaofficial.geetestproxyless import *

solver = geetestProxyless()
solver.set_verbose(1)
solver.set_key("YOUR_API_KEY_HERE")
solver.set_website_url("https://address.com")
solver.set_gt_key("CONSTANT_GT_KEY")
solver.set_challenge_key("VARIABLE_CHALLENGE_KEY")

# optional API subdomain, make sure you understand what to set here
# solver.set_js_api_domain("custom-domain.geetest.com")

# getLib payload, see documentation for explanation of this
# solver.set_geetest_lib("{\"customlibs\":\"url-to-lib.js\"}")

token = solver.solve_and_return_solution()
if token != 0:
    print "result tokens: "
    print token
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");

ac.setAPIKey('YOUR_API_KEY_HERE');
ac.solveGeeTestProxyless('http://DOMAIN.COM',
    'GT',
    'CHALLENGE',
    'API_SUBDOMAIN',
    'GET_LIB')
    .then(result => {
        console.log('result: ');
        console.log(result);
    })
    .catch(error => console.log('test received error '+error));
      
C#
          //git clone https://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 GeeTestProxyless()
            {
                ClientKey = "YOUR_API_KEY_HERE",
                WebsiteUrl = new Uri("http://www.supremenewyork.com"),
                WebsiteKey = "b6e21f90a91a3c2d4a31fe84e10d0442",
                WebsiteChallenge = "169acd4a58f2c99770322dfa5270c221"
            };

            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 CHALLENGE: " + api.GetTaskSolution().Challenge, DebugHelper.Type.Success);
                DebugHelper.Out("Result SECCODE: " + api.GetTaskSolution().Seccode, DebugHelper.Type.Success);
                DebugHelper.Out("Result VALIDATE: " + api.GetTaskSolution().Validate, DebugHelper.Type.Success);
            }

        }
    }
}

        
Java
          //git clone git@github.com:AdminAnticaptcha/anticaptcha-java.git

package com.anti_captcha;

import com.anti_captcha.Api.GeeTestProxyless;
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);

        GeeTestProxyless api = new GeeTestProxyless();
        api.setClientKey("YOUR_API_KEY_HERE");
        api.setWebsiteUrl(new URL("http://biletmaster.com/"));
        api.setWebsiteKey("be33de396f8d04030f6eca8fbd225071");
        api.setWebsiteChallenge("grabbed_one_time_challenge_32bytes");

        //optional API subdomain, make sure you understand what to set here
        //api.setGeetestApiServerSubdomain("optional.subdomain.api.geetest.com");

        //read the docs about this optional parameter
        //api.setGeetestLib("{\"customlibs\":\"url-to-lib.js\"}");

        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 CHALLENGE: " + api.getTaskSolution().getChallenge(), DebugHelper.Type.SUCCESS);
            DebugHelper.out("Result SECCODE: " + api.getTaskSolution().getSeccode(), DebugHelper.Type.SUCCESS);
            DebugHelper.out("Result VALIDATE: " + api.getTaskSolution().getValidate(), 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 পদ্ধতি ব্যাবহার করুন। প্রথম অনুরোধটি করার আগে, একটি কর্মীকে কিছু সময় দিন, ৫ সেকেন্ডের মতো। কর্মীটি এরপরেও ব্যস্ত থাকলে ৩ সেকেন্ড পর পুনরায় চেষ্টা করুন।

টাস্ক সমাধান অবজেক্ট

প্রোপার্টি ধরণ উদ্দেশ্য
challenge স্ট্রিং টার্গেট ওয়েবসাইটে জমা দেওয়ার ফর্মের সাথে সংযোগ স্থাপনের জন্য প্রয়োজনীয় হ্যাশ স্ট্রিং।
validate স্ট্রিং হ্যাশ স্ট্রিং যা প্রয়োজন।
seccode স্ট্রিং আরেকটি প্রয়োজনীয় হ্যাশ স্ট্রিং, সেগুলির মধ্যে ৩টি কেন রয়েছে তা আমাদের কোনও ধারণা নেই।

প্রতিক্রিয়ার উদাহরণ

ত্রুটিমুক্ত JSON
          {
    "errorId":0,
    "status":"ready",
    "solution":
    {
        "challenge":"3c1c5153aa48011e92883aed820069f3hj",
        "validate":"47ad5a0a6eb98a95b2bcd9e9eecc8272",
        "seccode":"83fa4f2d23005fc91c3a015a1613f803|jordan"
    },
    "cost":"0.001500",
    "ip":"46.98.54.221",
    "createTime":1472205564,
    "endTime":1472205570,
    "solveCount":"0"
}
        

টোকেন ব্যবহারের উদাহরণ