Menu
이미지 CAPTCHA 풀기
이미지 본문을 게시하고 텍스트를 받습니다. 텍스트에는 숫자, 문자, 특수 문자, 여백만 포함될 수 있습니다. GIF 애니메이션의 경우, 최대 500kb까지 지원됩니다. "일련의 이미지에서 고양이를 찾아 해당 숫자를 입력하세요."와 같은 사용자 지정 CAPTCHA는 지원되지 않습니다.
Anti Captcha의 모든 캡차는 AI나 OCR 소프트웨어 없이 오직 사람의 노동력으로만 해결됩니다. 우리는 OCR 소프트웨어로 캡차를 해결하려는 작업자의 부정행위 시도에 적극적으로 대응하며, 2007년 이후 수백만 개의 작업자 계정을 차단해 왔습니다. 우리는 실제 사람의 존재를 보장하고, 텍스트 입력 품질을 측정 및 평가하며, 충실한 작업자를 우대하기 위해 수십 가지의 다양한 전략을 사용합니다. 우리의 목표는 언제나 고객의 만족과 마음의 평안을 보장하기 위해 100%의 이미지 인식 품질을 달성하는 것이었습니다.
Python
Node.js
Go
PHP
Java
Kotlin
C#
C++
Rust
Ruby
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을(를) 해결하는 방법
// GitHub: https://github.com/anti-captcha/anticaptcha-java
//
// Maven, add to pom.xml:
// <dependency>
// <groupId>com.anti-captcha</groupId>
// <artifactId>anticaptcha</artifactId>
// <version>1.0.0</version>
// </dependency>
//
// Gradle, add to build.gradle:
// implementation "com.anti-captcha:anticaptcha:1.0.0"
import com.anti_captcha.Api.ImageToText;
import com.anti_captcha.Helper.DebugHelper;
public class Main {
public static void main(String[] args) throws InterruptedException {
// Set to false to turn the debug output off
DebugHelper.setVerboseMode(true);
ImageToText api = new ImageToText();
api.setClientKey("YOUR_API_KEY_HERE");
// Specify softId to earn 10% commission with your app.
// Get your softId here: https://anti-captcha.com/clients/tools/devcenter
api.setSoftId(0);
api.setFilePath("captcha.jpg");
// OR api.setBodyBase64("image-encoded-in-base64");
// Additional flags, see documentation for details
// api.setPhrase(true); // 2 or more words
// api.setCase(true); // case sensitivity
// api.setNumeric(ImageToText.NumericOption.NUMBERS_ONLY);
// api.setMath(1); // math operation like result of 50+5
// api.setMinLength(1); // minimum length of solution
// api.setMaxLength(10); // maximum length
api.setLanguagePool("en"); // language pool, see docs for available pools
// Make sure the API key funds balance is positive
Double balance = api.getBalance();
if (balance == null || balance <= 0) {
// Stop here to make sure you don't DDoS the API while having empty balance
DebugHelper.out("Balance error: " + api.getErrorMessage(), DebugHelper.Type.ERROR);
return;
}
DebugHelper.out("Balance: " + balance, DebugHelper.Type.SUCCESS);
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("Captcha text: " + api.getTaskSolution().getText(), DebugHelper.Type.SUCCESS);
}
}
}Kotlin에서 이미지 CAPTCHA을(를) 해결하는 방법
// GitHub: https://github.com/anti-captcha/anticaptcha-kotlin
//
// Gradle, add to build.gradle.kts:
// implementation("com.anti-captcha:anticaptcha-kotlin:1.0.0")
import com.anticaptcha.AnticaptchaClient
import com.anticaptcha.AnticaptchaException
import com.anticaptcha.ApiException
import com.anticaptcha.ImageSettings
import kotlinx.coroutines.runBlocking
fun main(): Unit = runBlocking {
// Create the API client and set the API key
val ac = AnticaptchaClient(
apiKey = "YOUR_API_KEY_HERE",
// Specify softId to earn 10% commission with your app.
// Get your softId here: https://anti-captcha.com/clients/tools/devcenter
softId = 0,
// Set to false to turn the debug output off
verbose = true,
)
try {
// Make sure the API key funds balance is positive
val balance = ac.getBalance()
if (balance <= 0) {
// Stop here to make sure you don't DDoS the API while having empty balance
System.err.println("Empty balance")
return@runBlocking
}
println("Balance: $balance")
val solution = ac.solveImageFile(
"captcha.jpg",
ImageSettings(
// Additional flags, see documentation for details
// phrase = true, // 2 or more words
// caseSensitive = true, // case sensitivity
// numeric = 1, // 1 - digits only, 2 - no digits
// mathOperation = true, // 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
// comment = "Type in green characters",
),
)
println("Captcha text: ${solution.text}")
} catch (error: ApiException) {
// https://anti-captcha.com/apidoc/errors
System.err.println("API error: ${error.errorCode} ${error.description}")
} catch (error: AnticaptchaException) {
System.err.println("Failed: ${error.message}")
}
}C#에서 이미지 CAPTCHA을(를) 해결하는 방법
// GitHub: https://github.com/anti-captcha/anticaptcha-csharp.git
// install: dotnet add package AntiCaptchaOfficial
// or, in the Package Manager Console:
// Install-Package AntiCaptchaOfficial
using System;
using AntiCaptcha.Api;
using AntiCaptcha.Helper;
class Program
{
static void Main()
{
// Set to 'false' to turn off debug output
DebugHelper.VerboseMode = true;
var api = new ImageToText
{
ClientKey = "YOUR_API_KEY_HERE",
FilePath = "captcha.jpg",
// OR
// BodyBase64 = "image-encoded-in-base64",
// Additional flags, see documentation for details
// Phrase = true, // 2 or more words
// Case = true, // case sensitivity
// Numeric = ImageToText.NumericOption.NumbersOnly, // 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
// Comment = "Type in green characters", // hint for the worker
// Specify softId to earn 10% commission with your app.
// Get your softId here:
// https://anti-captcha.com/clients/tools/devcenter
SoftId = 0
};
// Make sure the API key funds balance is positive
var balance = api.GetBalance();
if (balance == null || balance <= 0)
{
// Exit the program to make sure you don't DDoS the API with requests while having empty balance
Console.WriteLine("Balance error: " + api.ErrorMessage);
return;
}
Console.WriteLine("Balance: " + balance);
var solution = api.Solve();
Console.WriteLine("Captcha text: " + solution?.Text);
}
}C++에서 이미지 CAPTCHA을(를) 해결하는 방법
// GitHub: https://github.com/anti-captcha/anticaptcha-cplus.git
// Add it to your CMake project:
// include(FetchContent)
// FetchContent_Declare(anticaptcha
// GIT_REPOSITORY https://github.com/anti-captcha/anticaptcha-cplus.git
// GIT_TAG v1.0.0)
// FetchContent_MakeAvailable(anticaptcha)
// target_link_libraries(your_app PRIVATE anticaptcha::anticaptcha)
#include <iostream>
#include <anticaptcha/anticaptcha.hpp>
int main() {
// Create the API client and set the API key
anticaptcha::Client ac("YOUR_API_KEY_HERE");
// Debug output is on by default, turn it off with:
// ac.shut_up();
// Specify softId to earn 10% commission with your app.
// Get your softId here: https://anti-captcha.com/clients/tools/devcenter
ac.set_soft_id(0);
try {
// Make sure the API key funds balance is positive
const double balance = ac.get_balance();
if (balance <= 0) {
// Stop here to make sure you don't DDoS the API while having empty balance
std::cerr << "Empty balance" << std::endl;
return 1;
}
std::cout << "Balance: " << balance << std::endl;
anticaptcha::ImageSettings params;
// Additional flags, see documentation for details
// params.phrase = true; // 2 or more words
// params.case_sensitive = true; // case sensitivity
// params.numeric = 1; // 1 - digits only, 2 - no digits
// params.math_operation = true; // math operation like result of 50+5
// params.min_length = 1; // minimum length of solution
// params.max_length = 10; // maximum length
params.language_pool = "en"; // language pool, see docs for available pools
// params.comment = "Type in green characters";
const anticaptcha::Solution solution = ac.solve_image_file("captcha.jpg", params);
std::cout << "Captcha text: " << solution.text() << std::endl;
} catch (const anticaptcha::ApiError& error) {
// https://anti-captcha.com/apidoc/errors
std::cerr << "API error: " << error.error_code() << " " << error.description() << std::endl;
return 1;
} catch (const anticaptcha::Error& error) {
std::cerr << "Failed: " << error.what() << std::endl;
return 1;
}
return 0;
}Rust에서 이미지 CAPTCHA을(를) 해결하는 방법
// GitHub: https://github.com/anti-captcha/anticaptcha-rust
// Install with:
// cargo add anticaptchaofficial
// or add it to Cargo.toml:
// [dependencies]
// anticaptchaofficial = "1"
use anticaptcha::{Client, ImageSettings};
#[tokio::main]
async fn main() -> anticaptcha::Result<()> {
// Create the API client and set the API key
let ac = Client::new("YOUR_API_KEY_HERE")
// Specify softId to earn 10% commission with your app.
// Get your softId here: https://anti-captcha.com/clients/tools/devcenter
.with_soft_id(0);
// .quiet() turns the debug output off
// Make sure the API key funds balance is positive
let balance = ac.get_balance().await?;
if balance <= 0.0 {
// Stop here to make sure you don't DDoS the API while having empty balance
eprintln!("Empty balance");
return Ok(());
}
println!("Balance: {balance}");
let solution = ac
.solve_image_file(
"captcha.jpg",
&ImageSettings {
// Additional flags, see documentation for details
// phrase: true, // 2 or more words
// case_sensitive: true, // case sensitivity
// numeric: 1, // 1 - digits only, 2 - no digits
// math_operation: true, // math operation like result of 50+5
// min_length: 1, // minimum length of solution
// max_length: 10, // maximum length
language_pool: "en".into(), // language pool, see docs for available pools
// comment: "Type in green characters".into(),
..Default::default()
},
)
.await?;
println!("Captcha text: {}", solution.text());
Ok(())
}Ruby에서 이미지 CAPTCHA을(를) 해결하는 방법
# GitHub: https://github.com/anti-captcha/anticaptcha-ruby
# Install with:
# gem install anticaptchaofficial
# or add it to your Gemfile:
# gem "anticaptchaofficial"
require "anticaptcha"
# Create the API client and set the API key
ac = Anticaptcha.new("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.soft_id = 0
# Set to false to turn the debug output off
ac.verbose = true
begin
# Make sure the API key funds balance is positive
balance = ac.balance
# Stop here to make sure you don't DDoS the API while having empty balance
abort "Empty balance" if balance <= 0
puts "Balance: #{balance}"
solution = ac.solve_image_file(
"captcha.jpg",
# Additional flags, see documentation for details
# phrase: true, # 2 or more words
# case_sensitive: true, # case sensitivity
# numeric: 1, # 1 - digits only, 2 - no digits
# math_operation: true, # math operation like result of 50+5
# min_length: 1, # minimum length of solution
# max_length: 10, # maximum length
language_pool: "en"
# comment: "Type in green characters",
)
puts "Captcha text: #{solution.text}"
rescue Anticaptcha::ApiError => e
# https://anti-captcha.com/apidoc/errors
warn "API error: #{e.error_code} #{e.description}"
rescue Anticaptcha::Error => e
warn "Failed: #{e.message}"
endbash에서 이미지 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"
}