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