Menu

이미지 CAPTCHA 풀기

이미지 본문을 게시하고 텍스트를 받습니다. 텍스트에는 숫자, 문자, 특수 문자, 여백만 포함될 수 있습니다. GIF 애니메이션의 경우, 최대 500kb까지 지원됩니다. "일련의 이미지에서 고양이를 찾아 해당 숫자를 입력하세요."와 같은 사용자 지정 CAPTCHA는 지원되지 않습니다.

Anti Captcha의 모든 캡차는 AI나 OCR 소프트웨어 없이 오직 사람의 노동력으로만 해결됩니다. 우리는 OCR 소프트웨어로 캡차를 해결하려는 작업자의 부정행위 시도에 적극적으로 대응하며, 2007년 이후 수백만 개의 작업자 계정을 차단해 왔습니다. 우리는 실제 사람의 존재를 보장하고, 텍스트 입력 품질을 측정 및 평가하며, 충실한 작업자를 우대하기 위해 수십 가지의 다양한 전략을 사용합니다. 우리의 목표는 언제나 고객의 만족과 마음의 평안을 보장하기 위해 100%의 이미지 인식 품질을 달성하는 것이었습니다.

Python
Node.js
Go
PHP
Java
C#
bash

Python에서 이미지 CAPTCHA을(를) 해결하는 방법

#pip3 install anticaptchaofficial

from anticaptchaofficial.imagecaptcha import *

solver = imagecaptcha()
solver.set_verbose(1)
solver.set_key("YOUR_API_KEY_HERE")

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

# optional parameters, see documentation for details
# solver.set_phrase(True)                      # 2 words
# solver.set_case(True)                        # case sensitivity
# solver.set_numeric(1)                        # only numbers
# solver.set_minLength(1)                      # minimum captcha text length
# solver.set_maxLength(10)                     # maximum captcha text length
# solver.set_math(True)                        # math operation result, for captchas with text like 50+5
# solver.set_comment("only green characters")  # comment for workers
# solver.set_language_pool("en")               # language pool

captcha_text = solver.solve_and_return_solution("captcha.jpeg")
if captcha_text != 0:
    print("captcha text "+captcha_text)
else:
    print("task finished with error "+solver.error_code)

Node.js에서 이미지 CAPTCHA을(를) 해결하는 방법

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

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

const captcha = fs.readFileSync('captcha.png', { encoding: 'base64' });

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

// Additional flags, see documentation description
// ac.settings.phrase = true;                  // 2 words
// ac.settings.case = true;                    // case sensitivity
// ac.settings.numeric = 1;                    // only numbers
// ac.settings.comment = "only green letters"; // text comment for workers
// ac.settings.math = true;                    // math operation like 50+2
// ac.settings.minLength = 1;                  // minimum amount of characters
// ac.settings.maxLength = 10;                 // maximum number of characters
// ac.settings.languagePool = 'en';            // language pool

ac.solveImage(captcha, true)
    .then(text => console.log('captcha text: '+text))
    .catch(error => console.log('test received error '+error));

Go에서 이미지 CAPTCHA을(를) 해결하는 방법

// 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 image captcha
    solution, err := ac.SolveImageFile("captcha.jpg", anticaptcha.ImageSettings{
        // Optional settings, see documentation for description
        // Phrase        true,                         // Set to 'true' if the image has 2 or more words
        // CaseSensitive true,                         // Set to 'true' if the image is case-sensitive
        // Numeric       1,                            // Set numbers mode
        // MathOperation true,                         // Set to 'true' if the needs a math operation, like result of 50+5
        // MinLength     1,                            // Set minimum length of the text
        // MaxLength     10,                           // Set maximum length of the text
        // LanguagePool  "en",                         // Set language pool to 'en' for English, 'rn' for Russian
        // Comment       "Type in green characters",   // Optional comment for the task
        // WebsiteURL:   "https://some-website.com/",  // Optional to collect stats in the dashboard by this website
    })
    // OR
    // solution, err := ac.SolveImage("image-encoded-in-base64", anticaptcha.ImageSettings{})
    if err != nil {
        log.Fatal(err)
    }
    fmt.Println("Captcha Solution:", solution)
}

PHP에서 이미지 CAPTCHA을(를) 해결하는 방법

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

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

$api = new ImageToText();

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

//setting file
$api->setFile("captcha.jpg");

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

//$api->setPhraseFlag(true);   // 2 words flag
//$api->setCaseFlag(true);     // case sensitivity flag
//$api->setNumericFlag(1);     // only numbers flag
//$api->setMathFlag(true);     // math operation flag
//$api->setMinLengthFlag(1);   // minimum number or characters flag
//$api->setMaxLengthFlag(10);  // maximum number of characters flag
//$api->setLanguagePool("en"); // define language pool (see available pools above)

//Define the source website to collect statistics in your Anti-Captcha dashboard
//$api->setWebsiteURL("https://mywebsite.com/");


//create task in API
if (!$api->createTask()) {
    echo "API v2 send failed - ".$api->getErrorMessage()."\n";
    exit;
}

$taskId = $api->getTaskId();

if (!$api->waitForResult()) {
    echo "could not solve captcha\n";
    echo $api->getErrorMessage()."\n";
} else {
    $captchaText    =   $api->getTaskSolution();
    echo "captcha text: $captchaText\n\n";
}

Java에서 이미지 CAPTCHA을(를) 해결하는 방법

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

package com.anti_captcha;

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

        ImageToText api = new ImageToText();
        api.setClientKey("YOUR_API_KEY_HERE");
        api.setFilePath("captcha.jpg");

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

        //optional parameters, see documentation
        //api.setPhrase(true);                                    // 2 words
        //api.setCase(true);                                      // case sensitivity
        //api.setNumeric(ImageToText.NumericOption.NUMBERS_ONLY); // only numbers
        //api.setMath(1);                                         // do math operation like result of 50+5
        //api.setMinLength(1);                                    // minimum length of the captcha text
        //api.setMaxLength(10);                                   // maximum length of the captcha text
        //api.setLanguagePool("en");                              // set pool of the languages used in the captcha

        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().getText(), DebugHelper.Type.SUCCESS);
        }
    }

}

C#에서 이미지 CAPTCHA을(를) 해결하는 방법

//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 ImageToText
            {
                ClientKey = "YOUR_API_KEY_HERE",
                FilePath = "captcha.jpg",
                // Specify softId to earn 10% commission with your app.
                // Get your softId here:
                // https://anti-captcha.com/clients/tools/devcenter
                SoftId = 0

                // Additional flags, see documentation for details
                // Phrase = false,      // 2 words
                // Case = false,        // case sensitivity
                // Numeric = 1,         // numbers only
                // Math = 1,            // math operation like result of 50+5
                // MinLength = 1,       // minimum length of solution
                // MaxLength = 10,      // maximum length
                // LanguagePool = "en"  // language pool, see docs for available pools
            };

            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().Text, DebugHelper.Type.Success);

        }
    }
}

bash에서 이미지 CAPTCHA을(를) 해결하는 방법

curl -i -H "Accept: application/json" \
-H "Content-Type: application/json" \
-X POST -d '{
    "clientKey":"YOUR_API_KEY_HERE",
    "task":
        {
            "type":"ImageToTextTask",
            "body":"BASE64_BODY_HERE__NO_NEWLINES__NO_EXTRA_TAGS__ONLY_CLEAN_BASE64",
            "phrase":false,
            "case":false,
            "numeric":0,
            "math":false,
            "minLength":0,
            "maxLength":0,
            "languagePool":"en"
        },
    "softId": 0
}' https://api.anti-captcha.com/createTask

작업 객체

속성 유형 필수 기본값 목적
type 문자열 ImageToTextTask 작업 유형을 정의하세요.
body 문자열 base64로 인코딩된 파일 본문. 줄 바꿈 없이 전송하여야 합니다. 'data:image/png,' 혹은 이와 유사한 태그는 포함하지 말고, 순수하게 base64만 사용하시기 바랍니다!
phrase 불린 아니요 false
case 불린 아니요 true
numeric 정수 아니요 0
math 불린 아니요 false
minLength 정수 아니요 0
maxLength 정수 아니요 0
comment 문자열 아니요 "enter red text"와 같은 작업자를 위한 추가 코멘트. 결과는 보장되지 않으며 전적으로 작업자에게 달려 있습니다.
websiteURL 문자열 아니요 지출 통계에서 이미지 CAPTCHA의 출처를 구분하기 위한 선택적 매개변수
languagePool 문자열 아니요 en 작업자 풀 언어 설정입니다. 이미지 CAPTCHA에만 적용되며, 현재 사용 가능한 언어 풀은 다음과 같습니다.

"EN"(기본값): 영어 대기열
"rn": 국가 그룹: 러시아, 우크라이나, 벨라루스, 카자흐스탄

작업 솔루션 객체

속성 유형 목적
text 문자열 이미지 CAPTCHA의 텍스트
url 문자열 향후 24시간 동안 CAPTCHA를 저장할 웹 주소. 24시간 이후에는 삭제됩니다.

응답 예제

{
    "errorId":0,
    "status":"ready",
    "solution":
    {
        "text":"deditur",
        "url":"http://61.39.233.233/1/147220556452507.jpg"
    },
    "cost":"0.000700",
    "ip":"46.98.54.221",
    "createTime":1472205564,
    "endTime":1472205570,
    "solveCount":"0"
}