如何使用 Python 绕过 CAPTCHA#

关于 CAPTCHA#

CAPTCHA 是“Completely Automated Public Turing test to tell Computers and Humans Apart”的缩写,即完全自动区分计算机和人类的图灵测试。它是一种用于确认网站访问者是否为真人而不是自动程序(如机器人或恶意软件)的测试。CAPTCHA 通常以图像形式呈现给用户,要求用户在一个文本框中输入他们所看到的文字或数字。这种测试利用了人类对图像和文字的识别能力,以确保网站的安全性,防止恶意攻击和自动化操作。

环境准备#

您可以使用 pip 安装 NextCaptcha Python SDK:
pip install nextcaptcha-python

用法#

要开始使用 NextCaptcha Python SDK,您首先需要从 NextCaptcha 仪表板获取 API 密钥 (clientKey)。 然后,您可以创建一个 NextCaptchaAPI 实例:
from nextcaptcha import NextCaptchaAPI
 
api = NextCaptchaAPI(client_key="YOUR_CLIENT_KEY")
现在,您可以使用api对象来解决各种类型的验证码。 要解决 reCAPTCHA v2 挑战,请使用 recaptchav2 方法:
result = api.recaptchav2(website_url="https://example.com", website_key="SITE_KEY")
解决 reCAPTCHA v2 Enterprise 要解决 reCAPTCHA v2 Enterprise 难题,请使用 recaptchav2enterprise 方法:
result = api.recaptchav2enterprise(website_url="https://example.com", website_key="SITE_KEY")
解决 reCAPTCHA v3 要解决 reCAPTCHA v3 挑战,请使用 recaptchav3 方法:
result = api.recaptchav3(website_url="https://example.com", website_key="SITE_KEY")
解决 reCAPTCHA Mobile 要解决 reCAPTCHA Mobile 挑战,请使用 recaptcha_mobile 方法:
result = api.recaptcha_mobile(app_key="APP_KEY")
解决 hCaptcha 要解决 hCaptcha 挑战,请使用 hcaptcha 方法:
result = api.hcaptcha(website_url="https://example.com", website_key="SITE_KEY")
解决 hCaptcha Enterprise 要解决 hCaptcha Enterprise 挑战,请使用 hcaptcha_enterprise 方法:
result = api.hcaptcha_enterprise(website_url="https://example.com", website_key="SITE_KEY")
解决 FunCaptcha 要解决 FunCaptcha 挑战,请使用 funcaptcha 方法:
result = api.funcaptcha(website_public_key="WEBSITE_PUBLIC_KEY")
检查帐户余额 要检查您的 NextCaptcha 帐户余额,请使用 get_balance 方法:
balance = api.get_balance()
print(f"Account balance: {balance}")
以下是使用 NextCaptcha Python SDK 解决 reCAPTCHA v2 挑战的完整示例:
from nextcaptcha import NextCaptchaAPI
 
CLIENT_KEY = "YOUR_CLIENT_KEY"
WEBSITE_URL = "https://example.com"
WEBSITE_KEY = "SITE_KEY"
 
api = NextCaptchaAPI(client_key=CLIENT_KEY)
result = api.recaptchav2(website_url=WEBSITE_URL, website_key=WEBSITE_KEY)
 
if result["status"] == "ready":
    print(f"reCAPTCHA solved: {result['solution']}")
else:
    print(f"Failed to solve reCAPTCHA: {result['error']}")

错误处理#

如果验证码出错,SDK会返回包含错误信息的字典。 您可以检查状态字段以确定请求是否成功。 如果状态为“就绪”,则说明验证码已成功解决,并且解决方案将在解决方案字段中提供。 如果状态为“失败”,错误字段将包含错误的描述