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

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

Logo of Capsolver

CapSolver Blogger

How to use capsolver

18-Jul-2023

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

Featured Image

🎯 概述

本教程将指导您使用CapSolver在Puppeteer中解决Google reCaptcha的过程。

CapSolver是一种验证码解决服务,可以帮助您解决验证码。

我们使用AI技术提供验证码解决算法,从而提高解决速度并显着降低成本,为开发者提供出色的体验。

本教程的目标是使用CapSolver解决位于recaptcha-demo.appspot.com ↗上的验证码。

Captcha Form

在本教程中,我们将采取以下步骤来解决上面的验证码:

  1. 安装所需的依赖项。
  2. 查找Captcha表单 ↗的网站密钥。
  3. 设置CapSolver。
  4. 解决验证码。

📦 安装所需的依赖项

要开始,我们需要安装此教程的以下依赖项:

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

python -m pip install pyppeteer capsolver-python

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

touch main.py

🔑 获取Captcha表单的网站密钥

网站密钥是由Google提供的唯一标识符,用于唯一标识每个验证码。

为了解决验证码,必须将网站密钥发送到CapSolver。

通过按照以下步骤找到Captcha表单 ↗的网站密钥:

  1. 访问Captcha表单 ↗
Captcha Form
  1. 通过按Ctrl/Cmd + Shift + I打开Chrome Dev Tools。
  2. 转到Elements选项卡,搜索data-sitekey。复制属性的值。
Site Key
  1. 将网站密钥存储在安全的位置,因为它将在稍后的部分中用于提交验证码到CapSolver。

🤖 设置CapSolver

要使用CapSolver解决验证码,您需要创建CapSolver帐户,向帐户添加资金并获取API密钥。按照以下步骤设置CapSolver帐户:

  1. 通过访问capsolver.com ↗注册CapSolver帐户。
Sign Up
  1. 使用PayPal、加密货币或其他列出的付款方式向您的CapSolver帐户添加资金。请注意,最低存款金额为6美元,还需要缴纳额外的税费。
Add Funds
  1. 现在,复制CapSolver提供的API密钥并安全地存储以供以后使用。
Store API Key

💡 解决验证码

现在完成上述步骤后,我们现在可以编写代码来解决验证码了。

main.py 文件中,添加以下代码:

import asyncio
import base64
import json

import capsolver
from pyppeteer import launch

async def main():
    # 网站密钥
    site_key = "YOUR_SITE_KEY_HERE"

    # CapSolver API密钥
    api_key = "YOUR_API_KEY_HERE"

    # 初始化CapSolver客户端
    solver = capsolver.Client(api_key)

    # 启动Puppeteer
    browser = await launch(headless=False)
    page = await browser.newPage()

    # 转到Captcha表单
    await page.goto("https://recaptcha-demo.appspot.com/recaptcha-v2-checkbox.php")

    # 找到验证码部分的iframe
    frame = page.frames[1]

    # 获取验证码图片的base64编码
    captcha_image_b64 = await frame.Jeval("#rc-imageselect img", "el => el.src.split(',', 2)[1]")
    captcha_image = base64.b64decode(captcha_image_b64)

    # 将验证码发送到CapSolver解决
    response = solver.decode(captcha_image)

    # 获取解决方案
    solution = response.solution

    # 在输入框中输入解决方案
    await frame.type("#recaptcha-response", solution)

    # 提交表单
    await asyncio.sleep(5)
    await frame.click("#recaptcha-demo-submit")

    # 等待解决方案的验证
    await page.waitForNavigation()

    # 打印页面标题
    print(await page.title())

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

asyncio.get_event_loop().run_until_complete(main())

在上面的代码中,我们首先导入了所需的依赖项,包括CapSolver和pyppeteer。

然后,我们设置了site_keyapi_key变量,用于存储网站密钥和CapSolver API密钥。请确保将这些变量替换为您自己的值。

接下来,我们初始化了CapSolver客户端,并启动了一个Puppeteer浏览器实例。

在浏览器中,我们使用page.goto方法导航到Captcha表单,并使用page.frames属性找到验证码部分的iframe。

然后,我们使用frame.Jeval方法获取验证码图片的base64编码,并将其发送到CapSolver进行解决。我们从CapSolver响应中获取解决方案,并使用frame.type方法将其输入到验证码输入框中。

最后,我们使用frame.click方法提交表单并等待页面导航完成。最终,我们打印页面的标题,并使用browser.close方法关闭浏览器实例。

现在,我们可以运行main.py文件,并在浏览器中自动解决Captcha表单中的验证码了。

python main.py

🎉 结论

在本教程中,我们介绍了如何使用CapSolver在Puppeteer中解决Google reCaptcha。我们首先获取了Captcha表单的网站密钥,然后设置了CapSolver客户端,并编写了代码来解决验证码。最后,我们运行了代码,并在浏览器中成功地解决了验证码。

加入我们
中文代理QQ群:497493756

更多