产品集成资源文档定价
立即开始

© 2026 CapSolver. All rights reserved.

联系我们

Slack: lola@capsolver.com

产品

  • reCAPTCHA v2
  • reCAPTCHA v3
  • Cloudflare Turnstile
  • Cloudflare Challenge
  • AWS WAF
  • 浏览器插件
  • 更多验证码类型

集成

  • Selenium
  • Playwright
  • Puppeteer
  • n8n
  • 合作伙伴
  • 查看所有集成

资源

  • 推荐返佣系统
  • 官方文档
  • API 参考
  • 博客
  • 常见问题 (FAQ)
  • 术语表
  • 系统状态

法律声明

  • 服务条款
  • 隐私政策
  • 退款政策
  • 请勿出售我的信息
博客/reCAPTCHA/如何使用 Puppeteer 解决 reCAPTCHA 并提高成功率
Aug16, 2024

如何使用 Puppeteer 解决 reCAPTCHA 并提高成功率

Emma Foster

Emma Foster

Machine Learning Engineer

CAPTCHAs,尤其是 reCAPTCHAs,是网站常用的安全措施,用于区分真人用户和自动化机器人。尽管 CAPTCHAs 在防止滥用方面至关重要,但对于从事网络爬虫或自动化测试的开发者来说,它们可能会成为一大障碍。幸运的是,Puppeteer 等工具结合 CAPTCHA 解决服务,可以有效地绕过这些挑战。今天我们将探讨如何使用 Puppeteer 作为 reCAPTCHA 解决方案,并将其集成到您的工作流程中。

什么是 Puppeteer?

Puppeteer 是一个 Node.js 库,它提供了一个高级 API 用于控制 Chrome 或 Chromium 浏览器。Puppeteer 主要用于自动化测试、抓取网页以及从网页生成 PDF 等任务。Puppeteer 非常适合用于浏览网站、点击按钮,甚至处理复杂的 JavaScript 应用程序。

reCAPTCHA 的挑战

reCAPTCHA 是一种更加复杂的 CAPTCHA,旨在阻止机器人访问网络服务。它通常要求用户识别图像中的对象,或者仅仅点击一个复选框。对于机器人而言,这些任务在没有合适工具的情况下是非常具有挑战性的。

当使用 Puppeteer 进行网络爬虫或自动化时,遇到 reCAPTCHA 可能会阻止整个过程的进行。为继续操作,您需要一种能够以编程方式解决 reCAPTCHA 的方法。

使用 Puppeteer 解决 reCAPTCHA

要使用 Puppeteer 解决 reCAPTCHA,您可以采用多种方法。以下是最有效的几种方法概述:

  1. 手动绕过:

这种方法涉及使用 Puppeteer 的交互模式手动解决 CAPTCHA。这种方法适合测试,但对于大规模自动化并不实用。

  1. 第三方 CAPTCHA 解决方案:

最有效的以编程方式处理 reCAPTCHA 的方法是使用第三方 CAPTCHA 解决服务,例如 CapSolver。这些服务提供 API,可以为您解决 reCAPTCHA,并返回您可以提交给网站的响应令牌。

  1. 自定义解决方案:

对于高级用户,可以使用机器学习模型创建自定义的 reCAPTCHA 解决系统。然而,这需要大量资源和专业知识。

使用第三方 CAPTCHA 解决方案与 Puppeteer 集成

让我们重点介绍如何将第三方 CAPTCHA 解决方案与 Puppeteer 集成。以下是使用 CapSolver 解决 reCAPTCHA的分步指南。

1. 安装所需依赖项:

首先,确保已安装 Puppeteer 和 axios 库,axios 将用于向 CAPTCHA 解决服务发出 HTTP 请求。

bash Copy
npm install puppeteer axios

2. 设置 Puppeteer:

启动 Puppeteer 并导航到需要解决 reCAPTCHA 的目标网站。

javascript Copy
const puppeteer = require('puppeteer');

async function solveRecaptcha(url) {
    const browser = await puppeteer.launch({ headless: false });
    const page = await browser.newPage();
    await page.goto(url);

    // 其他 Puppeteer 逻辑代码
}

solveRecaptcha('https://example.com');

3. 请求 reCAPTCHA 解决方案:

使用 axios 向 CapSolver 的 API 发送请求以解决 reCAPTCHA。

javascript Copy
const axios = require('axios');

async function getCaptchaSolution(siteKey, pageUrl, apiKey) {
    const response = await axios.post('https://api.capsolver.com/createTask', {
        clientKey: apiKey,
        task: {
            type: 'ReCaptchaV2Task',
            websiteURL: pageUrl,
            websiteKey: siteKey,
        },
    });

    const taskId = response.data.taskId;
    let solution = '';

    // 轮询以获取解决方案
    while (!solution) {
        const result = await axios.post('https://api.capsolver.com/getTaskResult', {
            clientKey: apiKey,
            taskId: taskId,
        });

        if (result.data.status === 'ready') {
            solution = result.data.solution.gRecaptchaResponse;
        } else {
            await new Promise((resolve) => setTimeout(resolve, 5000)); // 等待5秒钟后重试
        }
    }

    return solution;
}

4. 注入 CAPTCHA 解决方案:

获取解决方案后,将其注入页面并提交表单。

javascript Copy
const siteKey = 'SITE_KEY';
const pageUrl = 'https://example.com';
const apiKey = 'YOUR_CAPSOLVER_API_KEY';

const captchaSolution = await getCaptchaSolution(siteKey, pageUrl, apiKey);

await page.evaluate((captchaSolution) => {
    document.querySelector('#g-recaptcha-response').innerHTML = captchaSolution;
    document.querySelector('form').submit();
}, captchaSolution);

5. 完成流程:

关闭浏览器或继续进行下一个自动化步骤。

javascript Copy
await browser.close();

高级技术

对于更高级的用例,可以考虑将 Puppeteer 与 undetected-chromedriver 工具结合使用以避免检测,或者使用 Playwright 库作为替代方案。Playwright 提供了与 Puppeteer 类似的功能,但提供了更高级的浏览器自动化功能,包括对多浏览器的支持以及更好地处理动态内容和 CAPTCHA 等网络抓取挑战。

结论

通过 Puppeteer 解决 reCAPTCHA 可以显著简化您的自动化和网络爬虫任务。通过利用 CapSolver 等第三方 CAPTCHA 解决服务,您可以有效绕过这些安全措施。无论您是进行数据抓取还是自动化交互,本指南为您集成 reCAPTCHA 解决方案到您的 Puppeteer 项目中提供了必要的基础。

请记住,务必负责任地使用这些工具,并确保您的活动符合您所交互网站的法律和道德标准。

查看更多

reCAPTCHAApr 16, 2026

reCAPTCHA 无效的站点密钥或令牌?原因与解决指南

遇到“reCAPTCHA 无效的站点密钥”或“无效的 reCAPTCHA 令牌”错误?发现常见原因、逐步修复方法和故障排除技巧,以解决 reCAPTCHA 验证失败的问题。学习如何修复 reCAPTCHA 验证失败,请再试一次。

Aloísio Vítor
Aloísio Vítor
reCAPTCHAMar 25, 2026

如何解决 reCAPTCHA v2 Python 和 API

学习如何使用 Python 和 API 解决 reCAPTCHA v2。这份全面指南涵盖代理和无代理方法,提供可用于自动化的生产就绪代码。

Nikolai Smirnov

目录

Nikolai Smirnov
reCAPTCHAFeb 27, 2026

如何自动化破解reCAPTCHA以用于人工智能基准测试平台

学习如何自动化处理reCAPTCHA v2和v3以进行AI基准测试。使用CapSolver优化数据收集并保持高性能的AI流水线。

Aloísio Vítor
Aloísio Vítor
reCAPTCHAFeb 12, 2026

如何修复网络爬虫中的常见reCAPTCHA问题

学习如何解决网络爬虫中的常见reCAPTCHA问题。探索针对reCAPTCHA v2和v3的实用解决方案,以确保数据收集流程的顺畅。

Sora Fujimoto
Sora Fujimoto