Menu

reCAPTCHA V3 풀기

해당 유형의 작업 객체는 작업자의 컴퓨터에서 Google reCAPTCHA V3를 풀기 위해 필요한 객체입니다. 해당 작업은 당사의 자체 프록시 서버 및/또는 작업자의 IP 주소를 사용하여 당사의 서비스를 통해 실행됩니다.

reCAPTCHA V2-Invisible과 reCAPTCHA V3의 경우, 동일하게 보여 혼동될 수 있습니다만, 이 둘 사이에는 차이가 존재하니 유의하시기 바랍니다. 여기서 정확한 유형을 간단하게 확인하는 방법으로 API를 통해 V2-Invisible 및 V3로 풀어보시기 바랍니다. 둘 중 하나에서만 오류가 발생하여 간편하게 확인하실 수 있습니다.

당사는 작업자의 reCAPTCHA "점수"를 테스트하여 0.3, 0.7, 0.9의 3개의 그룹(대기열)으로 분류합니다. 유휴 작업자 수에 따라 각각 비용이 다를 수 있습니다. "minScore" 속성을 전달하면 작업이 어느 대기열에 배치될지 정의할 수 있으며, 대부분의 가용 작업자는 0.3점을 받으며, 소수의 경우에는 0.9점을 받기도 합니다.

Recaptcha v3 example
reCAPTCHA V3의 예제. 일반적으로 페이지 우측 하단에 로고 배지가 있으나, 자바스크립트로 손쉽게 제거할 수 있습니다.
Python
Node.js
Go
PHP
Java
C#
bash

Python에서 reCaptcha V3을(를) 해결하는 방법

#pip3 install anticaptchaofficial

from anticaptchaofficial.recaptchav3proxyless import *

solver = recaptchaV3Proxyless()
solver.set_verbose(1)
solver.set_key("YOUR_API_KEY_HERE")
solver.set_website_url("https://website.com")
solver.set_website_key("SITE_KEY")
solver.set_page_action("home_page")
solver.set_min_score(0.9)

# 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)
    # user-agent in case you need it:
    print("user-agent: "+solver.get_user_agent())
else:
    print("task finished with error "+solver.error_code)

Node.js에서 reCaptcha V3을(를) 해결하는 방법

//npm install @antiadmin/anticaptchaofficial
//https://github.com/anti-captcha/anticaptcha-npm

const ac = require("@antiadmin/anticaptchaofficial");

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.solveRecaptchaV3('http://DOMAIN.COM',
    'WEBSITE_KEY',
    0.3, //minimum score required: 0.3, 0.7 or 0.9
    'PAGE_ACTION_CAN_BE_EMPTY')
    .then(gresponse => {
        console.log('g-response: '+gresponse);
    })
    .catch(error => console.log('test received error '+error));

// in case you need it
console.log("worker's user-agent:");
console.log(ac.getUserAgent());

Go에서 reCaptcha V3을(를) 해결하는 방법

// Install with:
// go get github.com/anti-captcha/anticaptcha-go
package main

import (
    "fmt"
    "github.com/anti-captcha/anticaptcha-go"
    "log"
)

func main() {
    // Create API client and set the API Key
    ac := anticaptcha.NewClient("API_KEY_HERE")

    // set to 'false' to turn off debug output
    ac.IsVerbose = true

    // Specify softId to earn 10% commission with your app.
    // Get your softId here: https://anti-captcha.com/clients/tools/devcenter
    //ac.SoftId = 1187

    // Make sure the API key funds balance is positive
    balance, err := ac.GetBalance()
    if err != nil {
        log.Fatal(err)
        // Exit program to make sure you don't DDoS API with requests, while having empty balance
        return
    }
    fmt.Println("Balance:", balance)

    // Solve Recaptcha V3
    solution, err := ac.SolveRecaptchaV3(anticaptcha.RecaptchaV3{
        WebsiteURL: "https://onlyfans.com/",
        WebsiteKey: "6LcvNcwdAAAAAMWAuNRXH74u3QePsEzTm6GEjx0J",
        PageAction: "somefun",
        MinScore:   0.9
    })
    if err != nil {
        log.Fatal(err)
    }
    fmt.Println("Recaptcha g-response token:", solution)
    // In case you need the worker's user-agent
    fmt.Println("User-Agent:", ac.WorkersUserAgent)
}

PHP에서 reCaptcha V3을(를) 해결하는 방법

//git clone https://github.com/anti-captcha/anticaptcha-php.git

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

$api = new RecaptchaV3();
$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");

//parameters for V3
//score you would like to have
$api->setMinScore(0.9);
//optional page action
$api->setPageAction("some_action");

//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 "\n";
    echo "your recaptcha token: $gResponse\n\n";
    echo "worker's user-agent in case you need it:\n";
    echo $api->getWorkersUserAgent()."\n";

    //check result, then:
    $api->reportCorrectRecaptcha();
    //or
    //$api->reportIncorrectRecaptcha();

}

Java에서 reCaptcha V3을(를) 해결하는 방법

//git clone https://github.com/anti-captcha/anticaptcha-java.git

DebugHelper.setVerboseMode(true);

RecaptchaV3Proxyless api = new RecaptchaV3Proxyless();
api.setClientKey("YOUR_API_KEY_HERE");
api.setWebsiteUrl(new URL("http://getcaptchajob.com/"));
api.setWebsiteKey("6LfE4ZIUAAAAAGSYvvoszRvEC9IgFVyXwGkypn-W");
api.setPageAction("testPageAction");
api.setMinScore(0.9);

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

C#에서 reCaptcha V3을(를) 해결하는 방법

//git clone https://github.com/anti-captcha/anticaptcha-csharp.git

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 RecaptchaV3Proxyless
            {
                ClientKey = "YOUR_API_KEY_HERE",
                WebsiteUrl = new Uri("http://makeawebsitehub.com/recaptcha/test.php"),
                WebsiteKey = "6LfI9IsUAAAAAKuvopU0hfY8pWADfR_mogXokIIZ",
                PageAction = "login_or_register",
                IsEnterprise = false,

                // Specify softId to earn 10% commission with your app.
                // Get your softId here:
                // https://anti-captcha.com/clients/tools/devcenter
                SoftId = 0
            };
            api.MinScore(0.3)

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

        }
    }
}

bash에서 reCaptcha V3을(를) 해결하는 방법

curl -i -H "Accept: application/json" \
     -H "Content-Type: application/json" \
     -X POST -d '{
    "clientKey":"YOUR_API_KEY_HERE",
    "task":
        {
            "type":"RecaptchaV3TaskProxyless",
            "websiteURL":"http://mywebsite.com/recaptcha/test.php",
            "websiteKey":"6Lc_aCMTAAAAABx7u2N0D1XnVbI_v6ZdbM6rYf16",
            "minScore": 0.3,
            "pageAction": "myverify",
            "isEnterprise": false
        },
    "softId": 0
}' https://api.anti-captcha.com/createTask

작업 객체

속성 유형 필수 목적
type 문자열 RecaptchaV3TaskProxyless
websiteURL 문자열 대상 웹페이지 주소. 회원 영역을 포함하여 웹사이트의 어느 곳에나 위치할 수 있습니다. 당사의 작업자는 해당 페이지를 탐색하지는 않으나, 대신에 해당 페이지의 방문 시뮬레이션합니다.
websiteKey 문자열 reCAPTCHA 웹사이트 키. 해당 키를 찾는 방법의 경우, 해당 글을 참고하시기 바랍니다.
minScore 2배 특정 점수의 작업자를 필터링합니다. 다음 중 하나의 값을 갖습니다:
0.3
0.7
0.9
pageAction 문자열 아니요
보안 문자의 '작업' 값입니다. 웹사이트 소유자는 이 매개변수를 사용하여 사용자가 페이지에서 수행하는 작업을 정의합니다. 예제:

grecaptcha.execute('site_key', {action:'login_test'})
isEnterprise 불린 아니요 이 V3를 엔터프라이즈 API로 풀어야 하는 경우, 이 플래그를 "true"fh로 설정하시기 바랍니다. 기본값은 "false"이며, 이 경우 reCAPTCHA는 비엔터프라이즈 API로 처리됩니다. 다음 예제에서와 같이 자바스크립트 호출로 확인할 수 있습니다.

grecaptcha.enterprise.execute('site_key', {..})
apiDomain 문자열 아니요 해당 매개변수를 사용하면 reCAPTCHA 스크립트가 제공되어야 하는 도메인 이름을 전송합니다. "www.google.com" 또는 "www.recaptcha.net"의 두 값 중 하나만 가질 수 있습니다. 수행 중인 작업을 제대로 파악하고 있지 못하는 경우에는 이 매개변수를 사용하지 마시기 바랍니다.

작업 솔루션 객체

속성 유형 목적
gRecaptchaResponse 문자열 대상 웹사이트의 제출 양식과 상호작용하는 데 필요한 토큰 문자열.
userAgent 문자열 작업자 브라우저의 사용자 에이전트. 응답 토큰을 제출할 때 사용합니다.

응답 예제

{
    "errorId":0,
    "status":"ready",
    "solution":
    {
        "gRecaptchaResponse":"3AHJ_VuvYIBNBW5yyv0zRYJ75VkOKvhKj9_xGBJKnQimF72rfoq3Iy-DyGHMwLAo6a3",
        "userAgent":"Mozilla\5.0 (Windows NT 10.0; Win64; x64) AppleWebKit\/537.36 (KHTML, like Gecko) Chrome\/145.0.0.0 Safari\/537.36"
    },
    "cost":"0.001500",
    "ip":"46.98.54.221",
    "createTime":1472205564,
    "endTime":1472205570,
    "solveCount":"0"
}