如何使用CapSolver在Puppeteer中解决验证码
🎯 概述
本教程将指导您使用CapSolver在Puppeteer中解决Google reCaptcha的过程。
CapSolver是一种验证码解决服务,可以帮助您解决验证码。
我们使用AI技术提供验证码解决算法,从而提高解决速度并显着降低成本,为开发者提供出色的体验。
本教程的目标是使用CapSolver解决位于recaptcha-demo.appspot.com ↗上的验证码。
在本教程中,我们将采取以下步骤来解决上面的验证码:
- 安装所需的依赖项。
- 查找Captcha表单 ↗的网站密钥。
- 设置CapSolver。
- 解决验证码。
📦 安装所需的依赖项
要开始,我们需要安装此教程的以下依赖项:
- capsolver-python ↗:用于与CapSolver API轻松集成的官方Python SDK。
- pyppeteer ↗:pyppeteer是Puppeteer的Python端口。
通过运行以下命令安装这些依赖项:
python -m pip install pyppeteer capsolver-python
现在,创建一个名为main.py
的文件,我们将在其中编写解决验证码的Python代码。
touch main.py
🔑 获取Captcha表单的网站密钥
网站密钥是由Google提供的唯一标识符,用于唯一标识每个验证码。
为了解决验证码,必须将网站密钥发送到CapSolver。
通过按照以下步骤找到Captcha表单 ↗的网站密钥:
- 访问Captcha表单 ↗。
- 通过按
Ctrl
/Cmd
+Shift
+I
打开Chrome Dev Tools。 - 转到
Elements
选项卡,搜索data-sitekey
。复制属性的值。
- 将网站密钥存储在安全的位置,因为它将在稍后的部分中用于提交验证码到CapSolver。
🤖 设置CapSolver
要使用CapSolver解决验证码,您需要创建CapSolver帐户,向帐户添加资金并获取API密钥。按照以下步骤设置CapSolver帐户:
- 通过访问capsolver.com ↗注册CapSolver帐户。
- 使用PayPal、加密货币或其他列出的付款方式向您的CapSolver帐户添加资金。请注意,最低存款金额为6美元,还需要缴纳额外的税费。
- 现在,复制CapSolver提供的API密钥并安全地存储以供以后使用。
💡 解决验证码
现在完成上述步骤后,我们现在可以编写代码来解决验证码了。
在 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_key
和api_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