Menu
通过代理服务器破解极验谜题
执行这种任务时,会在我们工作人员的浏览器中破解极验人机验证谜题。您的应用会提交网址、gt 密钥、质询密钥,还会在任务完成后收到有 3 个标记的破解结果。对于第 4 版极验谜题,输出信息中有 5 个值,无须使用质询密钥。
示例
v3
v4
Python
Node.js
Go
PHP
Java
Kotlin
C#
C++
Rust
Ruby
bash
如何用 Python 解决 Geetest V4 proxy-on
#pip3 install anticaptchaofficial
from anticaptchaofficial.geetestproxyon import *
solver = geetestProxyon()
solver.set_verbose(1)
solver.set_key("YOUR_API_KEY_HERE")
solver.set_website_url("https://address.com")
solver.set_gt_key("captchaId value")
solver.set_version(4)
# optional API subdomain, make sure you understand what to set here
# solver.set_js_api_domain("custom-domain.geetest.com")
# optional initialization parameters
# solver.set_init_parameters({"riskType": "slide"})
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")
# 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)
token = solver.solve_and_return_solution()
if token != 0:
print("result tokens: ")
print(token)
# 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 解决 Geetest V4 proxy-on
//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.solveGeeTestV4ProxyOn('http://DOMAIN.COM',
'captchaId',
'API_SUBDOMAIN',
{
"riskType": "slide"
},
'http', //http, socks4, socks5
'PROXY_ADDRESS',
'PROXY_PORT',
'PROXY_LOGIN',
'PROXY_PASSWORD',
'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_11_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/52.0.2743.116',
'some=cookies')
.then(result => {
console.log('result: ');
console.log(result);
})
.catch(error => console.log('test received error '+error));
// in case you need it
console.log("worker's user-agent:");
console.log(ac.getUserAgent());如何用 Go 解决 Geetest V4 proxy-on
// 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 Geetest with proxy
solution, err := ac.SolveGeeTestProxyOn(anticaptcha.Turnstile{
WebsiteURL: "https://bitget.com/",
Gt: "e9ca9c9ca19ad540a8017f5c107b2d0f",
Version: 4,
InitParameters: map[string]interface{}{
"riskType": "slide",
},
Proxy: &anticaptcha.Proxy{
Type: "http",
IPAddress: "1.2.3.4",
Port: 1234,
Login: "login-optional",
Password: "pass-optional",
},
})
if err != nil {
log.Fatal(err)
}
fmt.Println("Captcha Solution:", solution)
// In case you need the worker's user-agent
fmt.Println("User-Agent:", ac.WorkersUserAgent)
}如何用 PHP 解决 Geetest V4 proxy-on
//git clone https://github.com/anti-captcha/anticaptcha-php.git
include("anticaptcha.php");
include("geetest.php");
$api = new GeeTest();
$api->setVerboseMode(true);
$api->setWebsiteURL("https://www.geetest.com/en/adaptive-captcha-demo");
$api->setGTKey("fcd636b4514bf7ac4143922550b3008b");
$api->setVersion(4);
$api->setInitParameters([
"riskType": "slide"
]);
//optional API subdomain, make sure you understand what to set here
$api->setAPISubdomain("optional.subdomain.api.geetest.com");
//proxy access parameters
$api->setProxyType("http");
$api->setProxyAddress("8.8.8.8");
$api->setProxyPort(1234);
//optional login and password
$api->setProxyLogin("login");
$api->setProxyPassword("password");
//your anti-captcha.com account key
$api->setKey("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);
//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());
echo "worker's user-agent in case you need it:\n";
echo $api->getWorkersUserAgent()."\n";
}如何用 Java 解决 Geetest V4 proxy-on
// 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.AnticaptchaBase;
import com.anti_captcha.Api.GeeTestV4;
import com.anti_captcha.Helper.DebugHelper;
import org.json.JSONObject;
public class Main {
public static void main(String[] args) throws InterruptedException {
// Set to false to turn the debug output off
DebugHelper.setVerboseMode(true);
GeeTestV4 api = new GeeTestV4();
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.setWebsiteUrl("http://website.com/");
api.setWebsiteKey("b6e21f90a91a3c2d4a31fe84e10d0442");
api.setInitParameters(new JSONObject().put("riskType", "slide"));
api.setUserAgent("Mozilla/5.0 (Macintosh; Intel Mac OS X 10_11_6) AppleWebKit/537.36 "
+ "(KHTML, like Gecko) Chrome/52.0.2743.116");
// Do not use purchased/rented proxies from proxy services,
// use proper proxy software like Squid
api.setProxyType(AnticaptchaBase.ProxyTypeOption.HTTP);
api.setProxyAddress("xxx.xx.xx.xx");
api.setProxyPort(1234);
api.setProxyLogin("login");
api.setProxyPassword("password");
// 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_id: " + api.getTaskSolution().getCaptchaId(), DebugHelper.Type.SUCCESS);
DebugHelper.out("lot_number: " + api.getTaskSolution().getLotNumber(), DebugHelper.Type.SUCCESS);
DebugHelper.out("pass_token: " + api.getTaskSolution().getPassToken(), DebugHelper.Type.SUCCESS);
DebugHelper.out("gen_time: " + api.getTaskSolution().getGenTime(), DebugHelper.Type.SUCCESS);
DebugHelper.out("captcha_output: " + api.getTaskSolution().getCaptchaOutput(), DebugHelper.Type.SUCCESS);
}
}
}如何用 Kotlin 解决 Geetest V4 proxy-on
// 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.GeeTest
import com.anticaptcha.Proxy
import com.anticaptcha.ProxyType
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.solveGeeTestProxyOn(
GeeTest(
websiteUrl = "http://website.com/",
gt = "b6e21f90a91a3c2d4a31fe84e10d0442",
version = 4,
initParameters = mapOf("riskType" to "slide"),
),
// Do not use purchased/rented proxies from proxy services,
// use proper proxy software like Squid
Proxy(
address = "xxx.xx.xx.xx",
port = 1234,
type = ProxyType.HTTP,
login = "login",
password = "password",
),
)
println("captcha_id: ${solution.captchaId}")
println("lot_number: ${solution.lotNumber}")
println("pass_token: ${solution.passToken}")
println("gen_time: ${solution.genTime}")
println("captcha_output: ${solution.captchaOutput}")
} 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# 解决 Geetest V4 proxy-on
// 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 GeeTestV4
{
ClientKey = "YOUR_API_KEY_HERE",
WebsiteUrl = new Uri("http://website.com/"),
WebsiteKey = "b6e21f90a91a3c2d4a31fe84e10d0442",
UserAgent = "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_11_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/52.0.2743.116",
// Proxy type is Http by default, set ProxyType for socks4/socks5
ProxyAddress = "xxx.xx.xx.xx",
ProxyPort = 1234,
ProxyLogin = "login",
ProxyPassword = "password",
// Specify softId to earn 10% commission with your app.
// Get your softId here:
// https://anti-captcha.com/clients/tools/devcenter
SoftId = 0
};
api.InitParameters.Add("riskType", "slide");
// 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_id: " + solution?.CaptchaId);
Console.WriteLine("lot_number: " + solution?.LotNumber);
Console.WriteLine("pass_token: " + solution?.PassToken);
Console.WriteLine("gen_time: " + solution?.GenTime);
Console.WriteLine("captcha_output: " + solution?.CaptchaOutput);
}
}如何用 C++ 解决 Geetest V4 proxy-on
// 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::GeeTest params;
params.website_url = "http://website.com/";
params.gt = "b6e21f90a91a3c2d4a31fe84e10d0442";
params.version = 4;
params.init_parameters = riskType;
params.user_agent = "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_11_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/52.0.2743.116";
// Do not use purchased/rented proxies from proxy services,
// use proper proxy software like Squid
params.proxy.type = "http"; // "http", "socks4" or "socks5"
params.proxy.address = "xxx.xx.xx.xx";
params.proxy.port = 1234;
params.proxy.login = "login";
params.proxy.password = "password";
const anticaptcha::Solution solution = ac.solve_geetest_proxy_on(params);
std::cout << "captcha_id: " << solution.captcha_id() << std::endl;
std::cout << "lot_number: " << solution.lot_number() << std::endl;
std::cout << "pass_token: " << solution.pass_token() << std::endl;
std::cout << "gen_time: " << solution.gen_time() << std::endl;
std::cout << "captcha_output: " << solution.captcha_output() << 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 解决 Geetest V4 proxy-on
// GitHub: https://github.com/anti-captcha/anticaptcha-rust
// Install with:
// cargo add anticaptchaofficial
// or add it to Cargo.toml:
// [dependencies]
// anticaptchaofficial = "1"
use anticaptcha::serde_json::json;
use anticaptcha::{Client, GeeTest, Proxy, ProxyType};
#[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 init_parameters = json!({ "riskType": "slide" })
.as_object()
.cloned()
.unwrap_or_default();
let solution = ac
.solve_geetest_proxy_on(&GeeTest {
website_url: "http://website.com/".into(),
gt: "b6e21f90a91a3c2d4a31fe84e10d0442".into(),
version: 4,
init_parameters,
user_agent: "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_11_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/52.0.2743.116"
.into(),
// Do not use purchased/rented proxies from proxy services,
// use proper proxy software like Squid
proxy: Proxy::new(ProxyType::Http, "xxx.xx.xx.xx", 1234)
.with_auth("login", "password"),
..Default::default()
})
.await?;
println!("captcha_id: {}", solution.captcha_id());
println!("lot_number: {}", solution.lot_number());
println!("pass_token: {}", solution.pass_token());
println!("gen_time: {}", solution.gen_time());
println!("captcha_output: {}", solution.captcha_output());
Ok(())
}如何用 Ruby 解决 Geetest V4 proxy-on
# 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_geetest_proxy_on(
website_url: "http://website.com/",
gt: "b6e21f90a91a3c2d4a31fe84e10d0442",
version: 4,
init_parameters: { "riskType" => "slide" },
user_agent: "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_11_6) AppleWebKit/537.36 " \
"(KHTML, like Gecko) Chrome/52.0.2743.116",
# Do not use purchased/rented proxies from proxy services,
# use proper proxy software like Squid
proxy: { type: "http", address: "xxx.xx.xx.xx", port: 1234,
login: "login", password: "password" }
)
puts "captcha_id: #{solution.captcha_id}"
puts "lot_number: #{solution.lot_number}"
puts "pass_token: #{solution.pass_token}"
puts "gen_time: #{solution.gen_time}"
puts "captcha_output: #{solution.captcha_output}"
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}"
end如何用 bash 解决 Geetest V4 proxy-on
curl -i -H "Accept: application/json" \
-H "Content-Type: application/json" \
-X POST -d '{
"clientKey":"YOUR_API_KEY_HERE",
"task":
{
"type":"GeeTestTask",
"websiteURL":"http://mywebsite.com/geetest/test.php",
"gt":"874703612e5cac182812a00e273aad0d",
"version":4,
"initParameters": {
"riskType": "slide"
}
"proxyType":"http",
"proxyAddress":"8.8.8.8",
"proxyPort":8080,
"proxyLogin":"proxyLoginHere",
"proxyPassword":"proxyPasswordHere",
"userAgent":"MODERN_USER_AGENT_HERE"
},
"softId": 0
}' https://api.anti-captcha.com/createTask任务对象
| 属性 | 类型 | 必须使用 | 用途 |
|---|---|---|---|
| type | 字符串 | 是 | GeeTestTask |
| websiteURL | 字符串 | 是 | 目标网页的地址。可位于网站中的任何位置,甚至可位于会员区中。我们的工作人员不会转到该位置,而是会模拟其访问操作。 |
| gt | 字符串 | 是 | 域公钥,极少得到更新。 |
| challenge | 字符串 | 是 | 更改标记密钥。一定要为每个人机验证谜题都获取新的标记密钥,否则会对错误的任务向您收费。 |
| geetestApiServerSubdomain | 字符串 | 否 | 自愿使用的 API 子域。可能必须使用才能实现某些功能。 |
| version | 整数 | 否 | 版本号。默认版本是第 3 版。支持的版本:第 3 版和第 4 版。 |
| initParameters | 对象 | 否 | 第 4 版的新增初始化参数 |
| proxyType | 字符串 | 是 | 代理服务器类型 http - 普通的 http/https 代理服务器 socks4 - socks4 代理服务器 socks5 - socks5 代理服务器 |
| proxyAddress | 字符串 | 是 | ipv4/ipv6 代理服务器 IP 地址。禁止使用主机名或本地网络中的 IP 地址。 |
| proxyPort | 整数 | 是 | 代理服务器端口 |
| proxyLogin | 字符串 | 是 | 用于需要授权(基本授权)的代理服务器的登录名 |
| proxyPassword | 字符串 | 是 | 代理服务器密码 |
| userAgent | 字符串 | 是 | 提供要用于浏览网站的用户代理值。我们的工作人员会在破解 Hcaptcha 谜题的过程中使用该值。 |
v3
v4
任务处理结果对象
| 属性 | 类型 | 用途 |
|---|---|---|
| captcha_id | 字符串 | 复合令牌的一部分 |
| lot_number | 字符串 | 复合令牌的一部分 |
| pass_token | 字符串 | 复合令牌的一部分 |
| gen_time | 整数 | 复合令牌的一部分 |
| captcha_output | 字符串 | 复合令牌的一部分 |
| userAgent | 字符串 | 工作人员浏览器的用户代理值。可在提交响应标记时使用。 |
响应示例
{
"errorId":0,
"status":"ready",
"solution":
{
"captcha_id": "fcd636b4514bf7ac4143922550b3008b",
"lot_number": "354ab6dd4e594fdc903074c4d8d37b24",
"pass_token": "b645946a654e60218c7922b74b3b5ee8e8717e8fd3cd5182a5c98d660bbd1ed5",
"gen_time": "1649921519",
"captcha_output": "cFPIALDXSop8Ri2mPABbRWzNBs86N8D4vNUTuVa7wN7E...[cut]...ciM50ePCCzLBZ1bmaV9Yt7IkkFI9Emx4eaP8rRoA==",
"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"
}