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

© 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)
  • 术语表
  • 系统状态

法律声明

  • 服务条款
  • 隐私政策
  • 退款政策
  • 请勿出售我的信息
博客/All/如何同时处理多个 reCAPTCHA 挑战
Sep12, 2024

如何同时处理多个 reCAPTCHA 挑战

Anh Tuan

Anh Tuan

Data Science Expert

在进行网页抓取时,你可能会遇到的常见障碍之一是 CAPTCHA 挑战。网站经常使用 CAPTCHA 来阻止机器人访问其内容。CAPTCHA(完全自动化的公共图灵测试,用于区分计算机和人类)是一种广泛使用的技术,用于确保用户是人,而不是自动化的机器人。

在本指南中,我们将讨论不同类型的 reCAPTCHA 挑战,如何使用工具识别它们,以及最后,如何使用 Python 和 threading 同时解决多个 reCAPTCHA 挑战。

什么是网页抓取?

网页抓取 是从网站提取数据的过程。它通常用于收集电子商务网站的价格、收集新闻文章或从各种网络来源汇总信息等任务。抓取涉及向网站发出 HTTP 请求并解析响应中的数据。但是,许多网站使用 CAPTCHA 来阻止自动访问。

reCAPTCHA 挑战的类型

reCAPTCHA v2

reCAPTCHA V2,这种类型的 CAPTCHA 是使用最广泛的,它显示为一个名为“我不是机器人”的“复选框”挑战。它可能会要求用户选择某些图像来验证他们是否是人。

reCAPTCHA v3

reCAPTCHA V3 在后台运行,对用户交互进行评分以检测类似机器人的行为。该系统旨在通过向网站提供分数来避免打扰用户体验,该分数可用于阻止机器人或要求额外的验证步骤。

无形 reCAPTCHA

无形 reCAPTCHA 是 reCAPTCHA v2 的更友好的版本,其中挑战仅在系统怀疑类似机器人的行为时才会出现。

识别 CAPTCHA 类型

安装

要识别网站上使用的 CAPTCHA 类型,您可以使用以下工具:

  • Chrome 用户: 安装 Captcha Solver 自动解决 扩展。
  • Firefox 用户: 安装 Captcha Solver 自动解决 FireFox 版本。

Capsolver 设置

Capsolver 是一项允许您以编程方式解决 CAPTCHA 挑战的服务。要检测 CAPTCHA 参数:

  1. 访问 Capsolver。
  2. 按键盘上的“F12”键以在您的浏览器中打开开发者工具。
  3. 导航到名为 Capsolver Captcha Detector 的选项卡。
Capsolver Captcha Detector

CAPTCHA 检测

设置好 Capsolver 后,请按照以下步骤检测 CAPTCHA 参数:

  1. 不要关闭 Capsolver 面板,访问您要触发 CAPTCHA 的网站。
  2. 手动触发 CAPTCHA。
  3. 确保在触发 CAPTCHA 之前 不要关闭 Capsolver 面板。

reCAPTCHA 检测

Capsolver Captcha Detector 可以返回有关 reCAPTCHA 的详细信息:

reCAPTCHA Detection

reCAPTCHA 的关键参数:

  • 网站 URL
  • 站点密钥
  • pageAction
  • isInvisible
  • isEnterprise
  • isSRequired
  • isReCaptchaV3
  • API 域

检测到这些参数后,Capsolver 将返回一个包含所有必要详细信息的 JSON 对象,以将 CAPTCHA 提交到其服务。

reCaptcha Solver Parameters

同时解决多个 reCAPTCHA 挑战

在处理网页抓取项目时,解决 CAPTCHA 可能会很耗时,尤其是在您需要同时解决多个 CAPTCHA 时。以下是如何使用 Python 自动化同时解决多个 reCAPTCHA 挑战。

示例:同时解决多个 reCAPTCHA v2 挑战

python Copy
import capsolver
import threading

capsolver.api_key = "Your Capsolver API Key"
PAGE_URL = "PAGE_URL"
PAGE_KEY = "PAGE_SITE_KEY"

def solve_recaptcha_v2():
    solution = capsolver.solve({
        "type": "ReCaptchaV2TaskProxyless",
        "websiteURL": PAGE_URL,
        "websiteKey": PAGE_KEY,
    })
    return solution

def solve_recaptcha_task(result_list, index):
    result = solve_recaptcha_v2()
    result_list[index] = result

def solve_multiple_recaptchas(num_tasks):
    threads = []
    results = [None] * num_tasks

    for i in range(num_tasks):
        thread = threading.Thread(target=solve_recaptcha_task, args=(results, i))
        threads.append(thread)
        thread.start()

    for thread in threads:
        thread.join()

    return results

def main():
    num_tasks = 10  # 同时任务的数量
    print(f"同时解决 {num_tasks} 个 reCaptcha v2 任务")
    solutions = solve_multiple_recaptchas(num_tasks)
    for i, solution in enumerate(solutions):
        print(f"解决方案 {i+1}: {solution}")

if __name__ == "__main__":
    main()

同时解决多个 reCAPTCHA v3 挑战

解决 reCAPTCHA v3 的过程与 v2 非常相似,但您需要相应地调整 CAPTCHA 类型。

python Copy
```python
import capsolver
import threading

capsolver.api_key = "Your Capsolver API Key"
PAGE_URL = "PAGE_URL"
PAGE_KEY = "PAGE_SITE_KEY"

def solve_recaptcha_v3():
    solution = capsolver.solve({
        "type": "ReCaptchaV3TaskProxyless",
        "websiteURL": PAGE_URL,
        "websiteKey": PAGE_KEY,
    })
    return solution

def solve_recaptcha_task(result_list, index):
    result = solve_recaptcha_v3()
    result_list[index] = result

def solve_multiple_recaptchas(num_tasks):
    threads = []
    results = [None] * num_tasks

    for i in range(num_tasks):
        thread = threading.Thread(target=solve_recaptcha_task, args=(results, i))
        threads.append(thread)
        thread.start()

    for thread in threads:
        thread.join()

    return results

def main():
    num_tasks = 10  # 同时任务的数量
    print(f"同时解决 {num_tasks} 个 reCaptcha v3 任务")
    solutions = solve_multiple_recaptchas(num_tasks)
    for i, solution in enumerate(solutions):
        print(f"解决方案 {i+1}: {solution}")

if __name__ == "__main__":
    main()

同时解决多个 reCAPTCHA v3 挑战

解决 reCAPTCHA v3 的过程与 v2 非常相似,但您需要相应地调整 CAPTCHA 类型。

python Copy
```python
import capsolver
import threading

capsolver.api_key = "Your Capsolver API Key"
PAGE_URL = "PAGE_URL"
PAGE_KEY = "PAGE_SITE_KEY"

def solve_recaptcha_v3():
    solution = capsolver.solve({
        "type": "ReCaptchaV3TaskProxyless",
        "websiteURL": PAGE_URL,
        "websiteKey": PAGE_KEY,
    })
    return solution

def solve_recaptcha_task(result_list, index):
    result = solve_recaptcha_v3()
    result_list[index] = result

def solve_multiple_recaptchas(num_tasks):
    threads = []
    results = [None] * num_tasks

    for i in range(num_tasks):
        thread = threading.Thread(target=solve_recaptcha_task, args=(results, i))
        threads.append(thread)
        thread.start()

    for thread in threads:
        thread.join()

    return results

def main():
    num_tasks = 10  # 同时任务的数量
    print(f"同时解决 {num_tasks} 个 reCaptcha v3 任务")
    solutions = solve_multiple_recaptchas(num_tasks)
    for i, solution in enumerate(solutions):
        print(f"解决方案 {i+1}: {solution}")

if __name__ == "__main__":
    main()

解决 reCAPTCHA v3 挑战和 reCAPTCHA v2 挑战

python Copy
import capsolver

# 考虑使用环境变量来保存敏感信息
capsolver.api_key = "Your Capsolver API Key"
PAGE_URL_V2 = "PAGE_URL"
PAGE_KEY_V2 = "PAGE_SITE_KEY"
PAGE_URL_V3 = "PAGE_URL"
PAGE_KEY_V3 = "PAGE_SITE_KEY"

def solve_recaptcha_v2(url, key):
    solution = capsolver.solve({
        "type": "ReCaptchaV2TaskProxyless",
        "websiteURL": url,
        "websiteKey": key,
    })
    return solution

def solve_recaptcha_v3(url, key):
    solution = capsolver.solve({
        "type": "ReCaptchaV3TaskProxyless",
        "websiteURL": url,
        "websiteKey": key,
        "minScore": 0.5  # 根据需要调整最小分数
    })
    return solution

def main():
    print("解决 reCaptcha v2")
    solution_v2 = solve_recaptcha_v2(PAGE_URL_V2, PAGE_KEY_V2)
    print("解决方案 (v2): ", solution_v2)

    print("解决 reCaptcha v3")
    solution_v3 = solve_recaptcha_v3(PAGE_URL_V3, PAGE_KEY_V3)
    print("解决方案 (v3): ", solution_v3)

if __name__ == "__main__":
    main()

附加代码

索要您的 奖励代码,以获得顶级验证码解决方案;CapSolver: scrape。兑换后,每次充值后您将获得额外的 5% 奖励,无限制

有关更多信息,请阅读本 博客

结论

处理多个 CAPTCHA 挑战对于从事网页抓取的任何人来说都是一项重要的技能,尤其是在网站加强安全措施的情况下。借助 Capsolver 等工具以及 Python 线程的强大功能,您可以有效地自动化解决 CAPTCHA 挑战,从而确保您的项目的抓取过程更加顺利。

查看更多

Apr 30, 2026

Cloudflare 错误 1020:访问被拒绝 在网络爬虫 & WAF 防护

了解Cloudflare错误1020访问被拒绝的触发原因,Web应用防火墙和机器人检测的工作原理,以及开发人员如何减少合法自动化工作流程中的误报。

Ethan Collins
Ethan Collins
Apr 29, 2026

AI代理在SEO中:从关键词研究到自动化数据收集

了解AI代理如何在搜索引擎优化中自动化关键词研究、竞争对手分析和数据收集——以及如何使用CapSolver处理流程中的验证码挑战。

Ethan Collins
Ethan Collins

目录

Apr 29, 2026

验证码破解API开发者文档:2026年指南

通过我们面向开发人员的全面API文档,掌握验证码解决技巧。学习如何将CapSolver集成到您的系统中,以处理reCAPTCHA、AWS WAF以及更多内容。

Ethan Collins
Ethan Collins
Apr 29, 2026

Cloudflare 挑战是什么?它是如何工作的及何时出现

了解 Cloudflare 挑战是什么,Cloudflare 如何通过 JavaScript 和机器学习检测机器人,以及在浏览过程中为何会出现挑战。2026 年的完整指南。

Ethan Collins
Ethan Collins