
Ethan Collins
Pattern Recognition Specialist

本教程将指导您如何使用 CapSolver 在 Puppeteer 中解决 Google reCaptchas。
CapSolver 是一个验证码解决服务,帮助您解决验证码。
我们使用人工智能驱动的验证码解决算法,从而实现更快的解决速度和显著降低的成本,提供出色的开发体验。
目标是使用 CapSolver 解决位于 recaptcha-demo.appspot.com 的验证码。

在本教程中,我们将采取以下步骤来解决上述验证码:
开始之前,我们需要安装以下本教程所需的依赖项:
通过运行以下命令安装这些依赖项:
python -m pip install pyppeteer capsolver-python
现在,创建一个名为 main.py 的文件,我们将在此文件中编写用于解决验证码的 Python 代码。
touch main.py
站点密钥是由 Google 提供的唯一标识符,用于唯一标识每个验证码。
要解决验证码,需要将站点密钥发送到 CapSolver。
让我们按照以下步骤找到 验证码表单 的站点密钥:
访问 验证码表单。

按下 Ctrl/Cmd + Shift + I 打开 Chrome 开发者工具。
转到 Elements 选项卡并搜索 data-sitekey,复制属性的值。

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



现在,我们将使用 CapSolver 解决验证码。整个过程包括三个步骤:
阅读以下代码片段以了解这些步骤。
启动浏览器并访问验证码页面:
# 启动浏览器。
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 解决验证码:
# 使用 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")
在表单上设置解决的验证码并提交:
# 在表单上设置解决的 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 解决验证码。
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("解决验证码")
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("验证码提交成功。按 Enter 继续")
# 关闭浏览器。
await browser.close()
if __name__ == "__main__":
asyncio.get_event_loop().run_until_complete(main())
将上述代码粘贴到您的 main.py 文件中。将 YOUR_API_KEY 替换为您的 API 密钥并运行代码。
您会注意到验证码将被解决,并且您将看到一个成功页面 🥳。

祝贺您!您已经成功学习了如何使用 CapSolver 解决验证码。以下是本教程的关键要点:
感谢您的时间。🙏 我们祝愿您在自动化旅程中好运!🚀
我们使用人工智能驱动的验证码解决算法,而不是人工解决者,因此验证码解决成本显著降低。因此,我们的价格在市场上具有高度竞争力。
例如,解决 Google v2/v3 验证码的成本范围为 0.8 至 1 美元。
如需了解我们的定价详情,请访问我们的定价页面 这里。
在本教程中,我们解决了 Google reCaptcha V2,但您的目标网站很可能使用的是 Google reCaptcha V3。
在解决 Google reCaptcha V3 时,确保提交验证码所使用的 IP 地址和用户代理与解决时使用的匹配非常重要。
一旦您拥有 住宅代理,您可以按照以下方式更新代码以成功解决验证码:
browser = await launch({'args': ['--proxy-server=ip:port'], 'headless': False})
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)