Menu
不通过代理服务器绕过 Google Recaptcha V2 Enterprise 谜题
这种任务用于通过工作人员的 IP 地址破解 Google Recaptcha Enterprise V2 谜题。
这种任务基本上类似于 RecaptchaV2TaskProxyless,除了任务用 Enterprise API 破解并分配给 Recaptcha V3 得分最高的工作人员。

Recaptcha V2 Enterprise 谜题示例。看起来与非企业版谜题完全相同。
Python
Node.js
PHP
Java
Kotlin
C#
C++
Rust
Ruby
bash
如何用 Python 解决 Recaptcha V2 Enterprise
#pip3 install anticaptchaofficial
from anticaptchaofficial.recaptchav2enterpriseproxyless import *
solver = recaptchaV2EnterpriseProxyless()
solver.set_verbose(1)
solver.set_key("YOUR_API_KEY_HERE")
solver.set_website_url("https://website.com")
solver.set_website_key("YOUR_API_KEY_HERE")
# solver.set_enterprise_payload({"s": "sometoken"})
# 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 V2 Enterprise
//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.solveRecaptchaV2EnterpriseProxyless(
'http://DOMAIN.COM',
'WEBSITE_KEY',
{
"s" : "SOME_TOKEN",
"any_custom_parameter" : "string_number_or_boolean"
})
.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());如何用 PHP 解决 Recaptcha V2 Enterprise
//git clone https://github.com/anti-captcha/anticaptcha-php.git
include("anticaptcha.php");
include("recaptchaV2Enterpriseproxyless.php");
$api = new Recaptchav2enterpriseProxyless();
$api->setVerboseMode(true);
//your anti-captcha.com account key
$api->setKey("YOUR_API_KEY_HERE");
//target website address
$api->setWebsiteURL("http://enteprisedomain.com/recaptcha/test.php");
//recaptcha key from target website
$api->setWebsiteKey("ENTERPRISE_SITEKEY_HERE");
//optional custom payload for grecaptcha.enterprise.render
$api->setEnterprisePayload(["s" => "TEMPORARY_TOKEN_VALUE"]);
//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 "\your recaptcha token: $gResponse\n\n";
echo "worker's user-agent in case you need it:\n";
echo $api->getWorkersUserAgent()."\n";
}如何用 Java 解决 Recaptcha V2 Enterprise
// 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.RecaptchaV2EnterpriseProxyless;
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);
RecaptchaV2EnterpriseProxyless api = new RecaptchaV2EnterpriseProxyless();
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://makeawebsitehub.com/recaptcha/test.php");
api.setWebsiteKey("6LfI9IsUAAAAAKuvopU0hfY8pWADfR_mogXokIIZ");
// Additional parameters passed to the grecaptcha.enterprise.render call
api.setEnterprisePayload(new JSONObject()
.put("s", "SOME_UNDOCUMENTED_TOKEN")
.put("blabla", "ANOTHER TOKEN"));
// 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("Recaptcha g-response token: " + api.getTaskSolution().getGRecaptchaResponse(), DebugHelper.Type.SUCCESS);
DebugHelper.out("Worker's user-agent in case you need it: " + api.getTaskSolution().getUserAgent(), DebugHelper.Type.SUCCESS);
}
}
}如何用 Kotlin 解决 Recaptcha V2 Enterprise
// 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.RecaptchaV2
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.solveRecaptchaV2(
RecaptchaV2(
websiteUrl = "http://makeawebsitehub.com/recaptcha/test.php",
websiteKey = "6LfI9IsUAAAAAKuvopU0hfY8pWADfR_mogXokIIZ",
isEnterprise = true,
// Additional parameters passed to the grecaptcha.enterprise.render call
enterprisePayload = mapOf(
"s" to "SOME_UNDOCUMENTED_TOKEN",
"blabla" to "ANOTHER TOKEN",
),
),
)
println("Recaptcha g-response token: ${solution.gRecaptchaResponse}")
println("Worker's user-agent in case you need it: ${solution.userAgent}")
} 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# 解决 Recaptcha V2 Enterprise
// 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 RecaptchaV2EnterpriseProxyless
{
ClientKey = "YOUR_API_KEY_HERE",
WebsiteUrl = new Uri("http://makeawebsitehub.com/recaptcha/test.php"),
WebsiteKey = "6LfI9IsUAAAAAKuvopU0hfY8pWADfR_mogXokIIZ",
// ApiDomain = "recaptcha.net", // only if the script is loaded from a non-google.com domain
// Specify softId to earn 10% commission with your app.
// Get your softId here:
// https://anti-captcha.com/clients/tools/devcenter
SoftId = 0
};
api.EnterprisePayload.Add("s", "SOME_UNDOCUMENTED_TOKEN");
api.EnterprisePayload.Add("blabla", "ANOTHER TOKEN");
// 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("Recaptcha g-response token: " + solution?.GRecaptchaResponse);
Console.WriteLine("Worker's user-agent in case you need it: " + solution?.UserAgent);
}
}如何用 C++ 解决 Recaptcha V2 Enterprise
// 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::RecaptchaV2 params;
params.website_url = "http://makeawebsitehub.com/recaptcha/test.php";
params.website_key = "6LfI9IsUAAAAAKuvopU0hfY8pWADfR_mogXokIIZ";
params.is_enterprise = true;
// Additional parameters passed to the grecaptcha.enterprise.render call
params.enterprise_payload = { {"s", "SOME_UNDOCUMENTED_TOKEN"},
{"blabla", "ANOTHER TOKEN"} };
// params.api_domain = "recaptcha.net"; // only for a non-google.com script domain
const anticaptcha::Solution solution = ac.solve_recaptcha_v2(params);
std::cout << "Recaptcha g-response token: " << solution.g_recaptcha_response() << std::endl;
std::cout << "Worker's user-agent in case you need it: " << solution.user_agent() << 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 解决 Recaptcha V2 Enterprise
// GitHub: https://github.com/anti-captcha/anticaptcha-rust
// Install with:
// cargo add anticaptchaofficial
// or add it to Cargo.toml:
// [dependencies]
// anticaptchaofficial = "1"
use std::collections::BTreeMap;
use anticaptcha::{Client, RecaptchaV2};
#[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 mut enterprise_payload = BTreeMap::new();
enterprise_payload.insert("s".to_owned(), "SOME_UNDOCUMENTED_TOKEN".to_owned());
enterprise_payload.insert("blabla".to_owned(), "ANOTHER TOKEN".to_owned());
let solution = ac
.solve_recaptcha_v2(&RecaptchaV2 {
website_url: "http://makeawebsitehub.com/recaptcha/test.php".into(),
website_key: "6LfI9IsUAAAAAKuvopU0hfY8pWADfR_mogXokIIZ".into(),
is_enterprise: true,
// Additional parameters passed to the grecaptcha.enterprise.render call
enterprise_payload,
// api_domain: "recaptcha.net".into(), // only for a non-google.com script domain
..Default::default()
})
.await?;
println!("Recaptcha g-response token: {}", solution.g_recaptcha_response());
println!("Worker's user-agent in case you need it: {}", solution.user_agent());
Ok(())
}如何用 Ruby 解决 Recaptcha V2 Enterprise
# 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_recaptcha_v2(
website_url: "http://makeawebsitehub.com/recaptcha/test.php",
website_key: "6LfI9IsUAAAAAKuvopU0hfY8pWADfR_mogXokIIZ",
is_enterprise: true,
# Additional parameters passed to the grecaptcha.enterprise.render call
enterprise_payload: { "s" => "SOME_UNDOCUMENTED_TOKEN", "blabla" => "ANOTHER TOKEN" }
# api_domain: "recaptcha.net", # only for a non-google.com script domain
)
puts "Recaptcha g-response token: #{solution.g_recaptcha_response}"
puts "Worker's user-agent in case you need it: #{solution.user_agent}"
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 解决 Recaptcha V2 Enterprise
curl -i -H "Accept: application/json" \
-H "Content-Type: application/json" \
-X POST -d '{
"clientKey":"YOUR_API_KEY_HERE",
"task":
{
"type":"RecaptchaV2EnterpriseTaskProxyless",
"websiteURL":"http://mywebsite.com/recaptcha/test.php",
"websiteKey":"6Lc_aCMTAAAAABx7u2N0D1XnVbI_v6ZdbM6rYf16",
"enterprisePayload": {
"s": "SOME_ADDITIONAL_TOKEN"
}
},
"softId": 0
}' https://api.anti-captcha.com/createTask任务对象
| 属性 | 类型 | 必须使用 | 用途 |
|---|---|---|---|
| type | 字符串 | 是 | RecaptchaV2EnterpriseTaskProxyless |
| websiteURL | 字符串 | 是 | 目标网页的地址。可位于网站中的任何位置,甚至可位于会员区中。我们的工作人员不会转到该位置,而是会模拟其访问操作。 |
| websiteKey | 字符串 | 是 | Recaptcha 网站密钥。请在此文章中了解如何查找网站密钥。 |
| enterprisePayload | 对象 | 否 | 可选的附加参数,可以与 sitekey 一起传递给 "grecaptcha.enterprise.render" 方法。以下是您可能需要查找的内容示例: |
| 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"
}