CAPSOLVER
博客
使用 Python 和 Selenium 解决 reCAPTCHA v3 企业挑战

使用 Python 和 Selenium 解决 reCAPTCHA v3 企业挑战

Logo of CapSolver

Ethan Collins

Pattern Recognition Specialist

04-Sep-2024

随着网络安全措施的不断发展,reCAPTCHA v3 Enterprise 已成为区分机器人和人类用户最复杂的方法之一。与 reCAPTCHA v2 不同,reCAPTCHA v3 在后台无形地运行,并评估用户互动以分配“类似机器人”或“类似人类”的评分。对于从事 Web 自动化的开发人员来说,解决 reCAPTCHA v3 Enterprise 可能具有挑战性,尤其是在尝试获得模仿人类行为的高分时。但是,使用 Python 和 Selenium 等合适的工具,这种挑战变得可以管理。

在本文中,我们将指导您设置环境,实施代码来解决 reCAPTCHA v3 挑战

什么是 reCAPTCHA v3 Enterprise?

reCAPTCHA v3 Enterprise 是 Google CAPTCHA 系统的更高级版本,旨在检测自动化流量,而不会中断用户体验。与以前的版本(例如 reCAPTCHA v2)不同,reCAPTCHA v2 需要用户点击图像或选中复选框,reCAPTCHA v3 在后台无形地运行,使用机器学习算法为每个用户操作分配风险评分。

reCAPTCHA v3 不向用户提供视觉挑战,而是分配 0 到 1 之间的分数,其中接近 0 的分数代表类似机器人的活动,而接近 1 的分数表示人类行为。网站可以使用此评分来确定是阻止还是允许特定操作。

在网页上检测 reCAPTCHA v3

与 reCAPTCHA v2 不同,reCAPTCHA v3 在后台无形地运行,可能不会显示任何可见的 CAPTCHA 挑战。但是,reCAPTCHA 小部件仍然存在于网页的后台。要检测它,请检查网页的 HTML 并查找包含 g-recaptcha 或引用 Google CAPTCHA API 的元素。

以下是如何识别 reCAPTCHA v3 的存在:

  1. 检查页面: 在浏览器中打开开发者工具(右键单击页面并选择“检查”)。在 HTML 源代码中查找以下内容:

    html 复制代码
    <script src="https://www.google.com/recaptcha/api.js" async defer></script>
  2. 自动化检测: 你可以使用 Selenium 以编程方式检测 reCAPTCHA:

    python 复制代码
    try:
        driver.find_element(By.XPATH, "//script[contains(@src, 'recaptcha/api.js')]")
        print("检测到 reCAPTCHA v3")
    except:
        print("未检测到 reCAPTCHA")

reCAPTCHA v3 企业版解决方案 - CapSolver

在处理 reCAPTCHA v3 企业版等复杂 CAPTCHA 挑战时,你需要一个可靠的工具来帮助你克服网页自动化带来的困难,避免被标记为机器人。CapSolver 就是你的最佳选择。

优惠代码

领取你的 优惠代码,享受顶级验证码解决方案;CapSolverWEBS。兑换后,每次充值即可获得额外 5% 奖励,无限期有效

前提条件

在开始之前,请确保你具备以下条件:

  • 代理(可选): 代理可以帮助分配请求并模拟更真实的使用者行为。
  • 已安装 Python: 确保你的系统已安装 Python。如果没有,请从 Python 官方网站 下载。
  • CapSolver API 密钥: 你需要一个 API 密钥,可以通过在 CapSolver 仪表板 注册帐户获得。

第 1 步:安装必要的软件包

要开始解决 reCAPTCHA v3 企业版,你需要安装 CapSolver 包。使用以下命令安装:

bash 复制代码
pip install capsolver

这个包允许你与 CapSolver API 交互,该 API 专为处理各种 CAPTCHA 挑战而设计,包括 reCAPTCHA v3 企业版。

第 2 步:解决 reCAPTCHA v3 企业版的 Python 代码(使用代理)

如果你打算使用代理,以下是一个解决 reCAPTCHA v3 企业版并旨在获得 0.7 到 0.9 之间的类人分数的 Python 脚本:

python 复制代码
import capsolver
from urllib.parse import urlparse

# 更改这些值
PROXY = "http://username:password@ip:port"
capsolver.api_key = "YourApiKey"
PAGE_URL = ""
PAGE_KEY  = ""
PAGE_ACTION = ""

def solve_recaptcha_v3_enterprise(url, key, pageAction):
    solution = capsolver.solve({
        "type": "ReCaptchaV3EnterpriseTask",
        "websiteURL": url,
        "websiteKey": key,
        "pageAction": pageAction,
        "proxy": PROXY
    })
    return solution

def main():
    print("Solving reCAPTCHA v3 Enterprise...")
    solution = solve_recaptcha_v3_enterprise(PAGE_URL, PAGE_KEY, PAGE_ACTION)
    token = solution["gRecaptchaResponse"]
    print("Solution Token: ", token)

if __name__ == "__main__":
    main()

⚠️ 重要变量

  • PROXY: 确保将其替换为实际的代理详细信息,格式为 http://username:password@ip:port。如果你使用代理,请确保它可靠,以避免被标记为可疑。
  • capsolver.api_key: 将 "YourApiKey" 替换为你的实际 CapSolver API 密钥。你可以在登录 CapSolver 仪表板 后生成它。
  • PAGE_URL: 替换为包含 reCAPTCHA v3 企业版的网站的 URL。
  • PAGE_KEY: 这是网站的 reCAPTCHA 密钥,你需要从页面中提取它。
  • PAGE_ACTION: reCAPTCHA 评估的特定操作。您可以从本指南了解如何找到此值。

步骤 3:解决 reCAPTCHA v3 企业版(无需代理)

对于不使用代理的情况,脚本更简单。以下是如何在没有代理的情况下解决 reCAPTCHA v3 企业版:

python 复制代码
import capsolver
from urllib.parse import urlparse

# 更改这些值
capsolver.api_key = "YourApiKey"
PAGE_URL = ""
PAGE_KEY  = ""
PAGE_ACTION = ""

def solve_recaptcha_v3_enterprise(url, key, pageAction):
    solution = capsolver.solve({
        "type": "ReCaptchaV3EnterpriseTaskProxyless",
        "websiteURL": url,
        "websiteKey": key,
        "pageAction": pageAction
    })
    return solution

def main():
    print("正在解决 reCAPTCHA v3 企业版...")
    solution = solve_recaptcha_v3_enterprise(PAGE_URL, PAGE_KEY, PAGE_ACTION)
    token = solution["gRecaptchaResponse"]
    print("解决方案令牌:", token)

if __name__ == "__main__":
    main()

解决 reCAPTCHA v3 企业版的最佳实践

  1. 使用代理: 如果您从同一个 IP 发送多个请求,请考虑使用轮换代理,以最大程度地降低被标记为机器人的风险。

  2. 类人交互: reCAPTCHA v3 根据用户行为分配分数。为了提高获得类人分数的机会,请确保您的自动化交互(点击、滚动、导航)模拟真实的人类活动。在操作之间引入随机延迟可以使您的自动化看起来更自然。

  3. 优化分数为 0.7-0.9: CapSolver 旨在在解决 reCAPTCHA v3 时提供介于 0.7 到 0.9 之间的类人分数。有关如何优化您的自动化以获得此类分数的详细见解,请查看此 CapSolver 博客文章

更多资源

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

更多