ComplexImageTask Recaptcha
该对象包含解决谷歌 ReCaptcha2 任务的数据。
请求参数
type
<string>requiredComplexImageTask
class
<string>requiredrecaptcha
imageUrls
<array>required (如果 imagesBase64 未填写)单张 4x4 图片,3x3或新的 1x1 验证码部分(数组中)。 示例: [“https://i.postimg.cc/yYjg75Kv/img1.jpg”]\
imagesBase64
<array>required (如果 imageUrls 未填写)单张 4x4 图片,3x3或新的 1x1 验证码部分的 base64 格式(数组中)。 示例: [ “/9j/4AAQSkZJRgABAQEAAAAAAAD…”]
metadata.Grid
<string>required图片网格大小。 可能的值: 4x4, 3x3, 1x1
metadata.TaskDefinition
<string>required (如果 metadata.Task 未填写)定义任务类型的技术值 如何获取 TaskDefinition。该数据可以在对 /recaptcha/{recaptchaApi}/reload
或 /recaptcha/{recaptchaApi}/userverify
请求的响应中找到,其中 recaptchaApi 是 "enterprise" 或 "api2",具体取决于 Recaptcha 的类型。响应包含 JSON,可以从中获取加载的验证码的 TaskDefinitions 列表。
metadata.Task
<string>required (if metadata.TaskDefinition is not filled)可能的值:点击交通灯
及其他
任务名称 (英文)。
userAgent
<string>optional加载图像时使用的浏览器用户代理(如果在 imageUrls 中传递了链接)。需要使用现代浏览器签名,否则谷歌会返回错误并要求更新浏览器。
websiteURL
<string>optional解决验证码的页面 URL。
参数说明
imageUrls:图像链接。
imagesBase64:Base64 格式的图像。
metadata.Grid:与图像网格大小相关的附加元数据。
metadata.TaskDefinition:任务描述标识符/类型,例如:/m/015qff
表示“点击红绿灯”。
metadata.Task:与任务相关的附加元数据。
userAgent:用户代理信息。当前 userAgent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/129.0.0.0 Safari/537.36
websiteURL:包含验证码的网页地址。
创建任务方法
https://api.capmonster.cloud/createTask
要求
{
"clientKey":"API_KEY",
"task": {
"type": "ComplexImageTask",
"class": "recaptcha",
"imageUrls":[ "https://i.postimg.cc/yYjg75Kv/payloadtraffic.jpg" ],
"metadata": {
"Task": "点击红绿灯",
"Grid": "3x3",
"TaskDefinition": "/m/015qff"
},
"userAgent": "userAgentPlaceholder",
"websiteUrl": "https://lessons.zennolab.com/captchas/recaptcha/v2_simple.php?level=middle"
}
}
回应
{
"errorId":0,
"taskId":407533072
}
获取任务结果方法
使用getTaskResult方法获取验证码解决方案。根据系统负载情况,您将在300毫秒到6秒的时间内收到响应。
https://api.capmonster.cloud/getTaskResult
要求
{
"clientKey":"API_KEY",
"taskId": 407533072
}
回应
{
"errorId":0,
"status":"ready",
"solution": {
"answer": [ false, false, false, false, true, false, false, false, false ]
}
}
属性 | 类型 | 描述 |
---|---|---|
answer | Array | 包含布尔值的列表,"true" 表示需要点击对应位置的图像。 |
定价:
名称 | 每1000张图片的成本, $ | 每1000张新动态图片的费用, $ | |
---|---|---|---|
1 | reCAPTCHA 2 (3*3) | 0.2 | 0.04 |
2 | reCAPTCHA 2 (4*4) | 0.1 | 不适用 |
使用 SDK 库
- JavaScript
- Python
- C#
// https://github.com/ZennoLab/capmonstercloud-client-js
import { CapMonsterCloudClientFactory, ClientOptions, ComplexImageRecaptchaRequest } from '@zennolab_com/capmonstercloud-client';
document.addEventListener('DOMContentLoaded', async () => {
const cmcClient = CapMonsterCloudClientFactory.Create(new ClientOptions({ clientKey: '<your capmonster.cloud API key>' }));
console.log(await cmcClient.getBalance());
const complexImageRecaptchaRequest = new ComplexImageRecaptchaRequest({
imageUrls: ['https://i.postimg.cc/yYjg75Kv/payloadtraffic.jpg'],
metaData: {
Grid: '3x3',
Task: 'Please click each image containing a mountain',
TaskDefinition: '/m/015qff',
},
websiteURL: 'https://lessons.zennolab.com/captchas/recaptcha/v2_simple.php?level=middle',
});
console.log(await cmcClient.Solve(complexImageRecaptchaRequest));
});
# https://github.com/ZennoLab/capmonstercloud-client-python
import asyncio
from capmonstercloudclient import CapMonsterClient, ClientOptions
from capmonstercloudclient.requests import RecaptchaComplexImageTaskRequest
client_options = ClientOptions(api_key="your_api_key") # Replace with your CapMonsterCloud API key
cap_monster_client = CapMonsterClient(options=client_options)
complex_image_recaptcha_request = RecaptchaComplexImageTaskRequest(
imagesUrls=["https://i.postimg.cc/yYjg75Kv/payloadtraffic.jpg"], # Replace with your values
metadata={
"Task": "Click on traffic lights",
"Grid": "3x3",
"TaskDefinition": "/m/015qff",
"websiteUrl": "https://lessons.zennolab.com/captchas/recaptcha/v2_simple.php?level=middle", # Website with the captcha
}
)
async def solve_captcha():
return await cap_monster_client.solve_captcha(complex_image_recaptcha_request)
responses = asyncio.run(solve_captcha())
print(responses)
// https://github.com/ZennoLab/capmonstercloud-client-dotnet
using Zennolab.CapMonsterCloud.Requests;
using Zennolab.CapMonsterCloud;
class Program
{
static async Task Main(string[] args)
{
var clientOptions = new ClientOptions
{
ClientKey = "your_api_key" // Replace with your CapMonster Cloud API key
};
var cmCloudClient = CapMonsterCloudClientFactory.Create(clientOptions);
var complexImageRecaptchaRequest = new RecaptchaComplexImageTaskRequest
{
ImageUrls = new[] { "https://i.postimg.cc/yYjg75Kv/payloadtraffic.jpg" }, // Replace with your image URL
Metadata = new RecaptchaComplexImageTaskRequest.RecaptchaMetadata
{
Task = "Click on traffic lights", // Task description
Grid = RecaptchaComplexImageTaskRequest.RecaptchaMetadata.GridSize.Grid3x3, // Set the grid size
TaskDefinition = "/m/015qff", // Task definition
}
};
var complexImageRecaptchaResult = await cmCloudClient.SolveAsync(complexImageRecaptchaRequest);
Console.WriteLine("Captcha Solution: " + string.Join(", ", complexImageRecaptchaResult.Solution.Answer));
}
}