CAPSOLVER
博客
如何在 Puppeteer 中使用 CapSolver 解决验证码

如何在 Puppeteer 中使用 CapSolver 解决验证码

Logo of CapSolver

Ethan Collins

Pattern Recognition Specialist

13-Oct-2025

如何使用 CapSolver 在 Puppeteer 中解决 CAPTCHA

如何使用 CapSolver 在 Puppeteer 中解决 CAPTCHA

🎯 概述

本教程将指导您通过 CapSolver 解决 Puppeteer 中的 Google reCAPTCHA。

CapSolver 是一个 CAPTCHA 解决服务,可帮助您解决 CAPTCHA。

我们使用人工智能驱动的 CAPTCHA 解决算法,从而实现更快的解决速度并显著降低成本,提供出色的开发人员体验。

我们的目标是使用 CapSolver 解决位于 recaptcha-demo.appspot.com,上的 CAPTCHA。

CAPTCHA 表单

在本教程中,我们将采取以下步骤来解决上述 CAPTCHA:

  1. 安装所需的依赖项。
  2. 找到 CAPTCHA 表单 的站点密钥。
  3. 设置 CapSolver。
  4. 解决 CAPTCHA。

📦 安装所需的依赖项

开始之前,我们需要为本教程安装以下依赖项:

  • capsolver-python:CapSolver API 的官方 Python SDK,便于集成。
  • pyppeteer:pyppeteer 是 Puppeteer 的 Python 版本。

通过运行以下命令安装这些依赖项:

复制代码
python -m pip install pyppeteer capsolver-python

现在,创建一个名为 main.py 的文件,我们将在其中编写用于解决 CAPTCHA 的 Python 代码。

bash 复制代码
touch main.py

🔑 获取 CAPTCHA 表单的站点密钥

站点密钥是由 Google 提供的独特标识符,唯一标识每个 CAPTCHA。

为了解决 CAPTCHA,需要将站点密钥发送到 CapSolver。

让我们按照以下步骤找到 CAPTCHA 表单 的站点密钥:

  1. 访问 CAPTCHA 表单
CAPTCHA 表单
  1. 按下 Ctrl/Cmd + Shift + I 打开 Chrome 开发者工具。
  2. 转到 Elements 选项卡并搜索 data-sitekey。复制属性的值。
站点密钥
  1. 将站点密钥存储在一个安全的地方,因为它将在稍后提交 CAPTCHA 到 CapSolver 时使用。

🤖 设置 CapSolver

要使用 CapSolver 解决 CAPTCHA,您需要创建一个 CapSolver 账户,向账户充值,并获取 API 密钥。按照以下步骤设置您的 CapSolver 账户:

  1. 访问 capsolver.com 注册 CapSolver 账户。
注册
  1. 使用 PayPal、加密货币或其他列出的支付方式向 CapSolver 账户充值。请注意,最低存款金额为 6 美元,并且会收取额外税费。
充值
  1. 现在,复制 CapSolver 提供的 API 密钥并安全存储以备以后使用。
存储 API 密钥

💡 解决 CAPTCHA

现在,我们将使用 CapSolver 解决 CAPTCHA。整个过程包括三个步骤:

  1. 使用 pyppeteer 启动浏览器并访问 CAPTCHA 页面。
  2. 使用 CapSolver 解决 CAPTCHA。
  3. 提交 CAPTCHA 响应。

阅读以下代码片段以了解这些步骤。
启动浏览器并访问 CAPTCHA 页面:

python 复制代码
# 启动浏览器。
browser = await launch({'headless': False})

# 加载目标页面。
captcha_page_url = "https://recaptcha-demo.appspot.com/recaptcha-v2-checkbox.php"
page = await browser.newPage()
await page.goto(captcha_page_url)

使用 CapSolver 解决 CAPTCHA:

python 复制代码
# 使用 CapSolver 解决 reCAPTCHA。
capsolver = RecaptchaV2Task("YOUR_API_KEY")

site_key = "6LfW6wATAAAAAHLqO2pb8bDBahxlMxNdo9g947u9"
task_id = capsolver.create_task(captcha_page_url, site_key)
result = capsolver.join_task_result(task_id)

# 获取解决的 reCAPTCHA 代码。
code = result.get("gRecaptchaResponse")

设置解决的 CAPTCHA 并提交表单:

python 复制代码
# 在表单上设置解决的 reCAPTCHA 代码。
recaptcha_response_element = await page.querySelector('#g-recaptcha-response')
await page.evaluate(f'(element) => element.value = "{code}"', recaptcha_response_element)

# 提交表单。
submit_btn = await page.querySelector('button[type="submit"]')
await submit_btn.click()

🚀 综合所有步骤

以下是本教程的完整代码,将使用 CapSolver 解决 CAPTCHA。

python 复制代码
import asyncio
from pyppeteer import launch
from capsolver_python import RecaptchaV2Task

# 以下代码使用 CapSolver 解决 reCAPTCHA v2 挑战。
async def main():
    # 启动浏览器。
    browser = await launch({'headless': False})

    # 加载目标页面。
    captcha_page_url = "https://recaptcha-demo.appspot.com/recaptcha-v2-checkbox.php"
    page = await browser.newPage()
    await page.goto(captcha_page_url)

    # 使用 CapSolver 解决 reCAPTCHA。
    print("正在解决 CAPTCHA")
    capsolver = RecaptchaV2Task("YOUR_API_KEY")

    site_key = "6LfW6wATAAAAAHLqO2pb8bDBahxlMxNdo9g947u9"
    task_id = capsolver.create_task(captcha_page_url, site_key)
    result = capsolver.join_task_result(task_id)

    # 获取解决的 reCAPTCHA 代码。
    code = result.get("gRecaptchaResponse")
    print(f"成功解决 reCAPTCHA。解决代码是 {code}")

    # 在表单上设置解决的 reCAPTCHA 代码。
    recaptcha_response_element = await page.querySelector('#g-recaptcha-response')
    await page.evaluate(f'(element) => element.value = "{code}"', recaptcha_response_element)

    # 提交表单。
    submit_btn = await page.querySelector('button[type="submit"]')
    await submit_btn.click()

    # 暂停执行,以便在关闭驱动程序前查看提交后的屏幕
    input("CAPTCHA 提交成功。按 Enter 键继续")

    # 关闭浏览器。
    await browser.close()

if __name__ == "__main__":
    asyncio.get_event_loop().run_until_complete(main())

将上述代码粘贴到您的 main.py 文件中。将 YOUR_API_KEY 替换为您的 API 密钥并运行代码。

您会发现 CAPTCHA 被成功解决,并被引导至成功页面 🥳。

解决 CAPTCHA 成功页面

✅ 结论

祝贺!您已成功学习如何使用 CapSolver 解决 CAPTCHA。以下是本教程的关键学习点:

  • CapSolver 提供了快速且成本效益高的 CAPTCHA 解决方案。
  • 解决 CAPTCHA 的一般流程包括:
    • 在 CapSolver 上创建账户并充值。
    • 找到目标 CAPTCHA 表单的站点密钥。
    • 将站点密钥和页面 URL 提交给 CapSolver 以解决 CAPTCHA。
    • 在适当元素上设置解决的 CAPTCHA 响应并提交表单。

感谢您的时间。🙏 祝您在自动化旅程中一切顺利!🚀

🤔 常见问题

解决 CAPTCHA 的费用是多少?

我们采用人工智能驱动的 CAPTCHA 解决算法,而不是人工解决者,从而显著降低了 CAPTCHA 解决成本。因此,我们的价格在市场中极具竞争力。

例如,解决 Google v2/v3 CAPTCHA 的费用范围为 0.8 美元至 1 美元。

如需详细了解我们的定价,请访问我们的定价页面 这里

我能够成功解决位于 recaptcha-demo.appspot.com 的 reCaptcha,但当我尝试解决另一个 reCaptcha 时,它无法被解决。为什么?

在本教程中,我们解决了 Google reCaptcha V2,但您的目标网站很可能使用的是 Google reCaptcha V3。

在解决 Google reCaptcha V3 时,确保提交 CAPTCHA 的 IP 地址和用户代理与解决时使用的匹配非常重要。

一旦您拥有 住宅代理,可以按照以下方式更新代码以成功解决 CAPTCHA:

  • 在启动 Puppeteer 时使用代理。
python 复制代码
browser = await launch({'args': ['--proxy-server=ip:port'], 'headless': False})
  • 在创建代理任务后设置代理和用户代理,如下所示:
python 复制代码
capsolver = RecaptchaV2Task("YOUR_API_KEY")

capsolver.set_proxy(proxy_address='proxy_ip', proxy_port='proxy_port', proxy_login='user', proxy_password='password')

browser_useragent = browser.userAgent()
capsolver.set_user_agent(browser_useragent)

合规声明: 本博客提供的信息仅供参考。CapSolver 致力于遵守所有适用的法律和法规。严禁以非法、欺诈或滥用活动使用 CapSolver 网络,任何此类行为将受到调查。我们的验证码解决方案在确保 100% 合规的同时,帮助解决公共数据爬取过程中的验证码难题。我们鼓励负责任地使用我们的服务。如需更多信息,请访问我们的服务条款和隐私政策。

更多