
Adélia Cruz
Neural Network Developer

自动化SEO工具、谷歌搜索抓取、机器人工作流程或无浏览器爬虫通常需要与受reCAPTCHA v3保护的网站进行交互。与reCAPTCHA v2不同,v3版本不会显示图片挑战,而是从0.0到1.0无声地分配一个风险评分,而机器人通常会获得低于0.3的评分。
为了实现类似人类的行为并获得稳定的0.7–0.9评分,您的自动化脚本必须做到:
在本指南中,您将学习如何使用Node.js + CapSolver 解决reCAPTCHA v3,包含可以直接运行的脚本、配置提示和最大化评分质量的最佳实践。
执行以下命令以安装所需的包:
npm install axios
以下是一个完成该任务的Node.JS示例脚本:
const PAGE_URL = "https://antcpt.com/score_detector";
const PAGE_KEY = "6LcR_okUAAAAAPYrPe-HK_0RULO1aZM15ENyM-Mf";
const PAGE_ACTION = "homepage";
const CAPSOLVER_KEY = "YourKey"
async function createTask(url, key, pageAction) {
try {
// 根据服务文档定义API端点和负载。
const apiUrl = "https://api.capsolver.com/createTask";
const payload = {
clientKey: CAPSOLVER_KEY,
task: {
type: "ReCaptchaV3TaskProxyLess",
websiteURL: url,
websiteKey: key,
pageAction: pageAction
}
};
const headers = {
'Content-Type': 'application/json',
};
const response = await axios.post(apiUrl, payload, { headers });
return response.data.taskId;
} catch (error) {
console.error("创建CAPTCHA任务时出错: ", error);
throw error;
}
}
async function getTaskResult(taskId) {
try {
const apiUrl = "https://api.capsolver.com/getTaskResult";
const payload = {
clientKey: CAPSOLVER_KEY,
taskId: taskId,
};
const headers = {
'Content-Type': 'application/json',
};
let result;
do {
const response = await axios.post(apiUrl, payload, { headers });
result = response.data;
if (result.status === "ready") {
return result.solution;
}
await new Promise(resolve => setTimeout(resolve, 5000)); // 等待5秒后重试
} while (true);
} catch (error) {
console.error("获取CAPTCHA结果时出错: ", error);
throw error;
}
}
function setSessionHeaders() {
return {
'cache-control': 'max-age=0',
'sec-ch-ua': '"Not/A)Brand";v="99", "Google Chrome";v="107", "Chromium";v="107"',
'sec-ch-ua-mobile': '?0',
'sec-ch-ua-platform': 'Windows',
'upgrade-insecure-requests': '1',
'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/108.0.0.0 Safari/537.36',
'accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
'sec-fetch-site': 'same-origin',
'sec-fetch-mode': 'navigate',
'sec-fetch-user': '?1',
'sec-fetch-dest': 'document',
'accept-encoding': 'gzip, deflate',
'accept-language': 'en,fr-FR;q=0.9,fr;q=0.8,en-US;q=0.7',
};
}
async function main() {
const headers = setSessionHeaders();
console.log("创建CAPTCHA任务...");
const taskId = await createTask(PAGE_URL, PAGE_KEY, PAGE_ACTION);
console.log(`任务ID: ${taskId}`);
console.log("获取CAPTCHA结果...");
const solution = await getTaskResult(taskId);
const token = solution.gRecaptchaResponse;
console.log(`令牌解决方案 ${token}`);
const res = await axios.post("https://antcpt.com/score_detector/verify.php", { "g-recaptcha-response": token }, { headers });
const response = res.data;
console.log(`评分: ${response.score}`);
}
main().catch(err => {
console.error(err);
});
解决Google reCAPTCHA v3对于现代自动化任务至关重要,例如SEO监控、SERP抓取、账户工作流程和后端验证系统。使用Node.js + CapSolver,您可以可靠地生成高评分的reCAPTCHA令牌,并避免被标记为自动化流量。
通过正确设置sitekey、pageAction、headers并遵循CapSolver的任务结构,您的自动化流程将变得稳定、可扩展,并能抵抗reCAPTCHA检测。
reCAPTCHA v3 会分配一个基于行为的评分(0.0–1.0),而不是显示图片挑战。它在后台静默运行,并评估用户交互以检测机器人。
您可以在HTML中(data-sitekey属性)或在加载https://www.google.com/recaptcha/api.js的JavaScript中找到sitekey。
pageAction告诉Google用户正在进行的活动,例如登录、搜索或提交。使用错误的值可能会显著降低您的评分。
常见原因包括:pageAction错误、IP质量低、请求头无效或sitekey不匹配。CapSolver提供优化的评分模型,有助于获得更高的评分。
可以。在获得令牌后,您可以将其注入浏览器会话的表单中,或直接调用验证端点。