软件介绍Hcaptcha-challenger 是一个开源的 Python 软件包,旨在破译 hCaptcha 验证码系统。hCaptcha 是一种人机验证系统,被许多网站用于保护其服务免受恶意自动化行为的侵害。然而,这种保护机制对于某些合法用户来说可能过于繁琐。
Hcaptcha-challenger 通过使用机器学习和图像处理技术,可以自动分析和识别 hCaptcha 验证码,从而帮助用户绕过人机验证步骤。
功能特点自动破解 hCaptcha 验证码:Hcaptcha-challenger 使用先进的机器学习和图像处理技术来识别和破解 hCaptcha 验证码,从而为用户提供了一种简单而有效的解决方案。高效准确:该软件包经过优化,可以高效地处理大量的验证码,并提供准确的破译结果。多种识别模式:为了适应不同类型和复杂度的 hCaptcha 验证码,Hcaptcha-challenger 提供了多种识别模式,以满足不同用户的需求。灵活的配置选项:用户可以根据自己的需求和环境,通过配置参数来调整识别模型的参数,以达到更好的破解效果。客户端和服务器端支持:Hcaptcha-challenger 提供客户端和服务器端两种使用方式,方便用户根据自己的需求选择。使用步骤1.下载和安装:通过 GitHub 页面或 pip 工具下载 hcaptcha-challenger 软件包,并根据指示进行安装。代码语言:javascript复制pip insatll -U pip
pip install -U hcaptcha-challenger[playwright]
2.导入和初始化:在 Python 代码中导入 hcaptcha-challenger,并进行初始化设置。代码语言:javascript复制# -*- coding: utf-8 -*-
# Time : 2023/9/2 3:30
# Author : QIN2DIM
# GitHub : https://github.com/QIN2DIM
# Description:
from __future__ import annotations
import asyncio
from pathlib import Path
from loguru import logger
from playwright.async_api import BrowserContext as ASyncContext, async_playwright
import hcaptcha_challenger as solver
from hcaptcha_challenger.agents import AgentT
from hcaptcha_challenger.utils import SiteKey
# Init local-side of the ModelHub
clip_available = True
solver.install(upgrade=True, clip=clip_available)
# Save dataset to current working directory
tmp_dir = Path(__file__).parent.joinpath("tmp_dir")
sitekey = SiteKey.user_easy
@logger.catch
async def hit_challenge(context: ASyncContext, times: int = 8):
page = await context.new_page()
agent = AgentT.from_page(page=page, tmp_dir=tmp_dir, self_supervised=clip_available)
await page.goto(SiteKey.as_sitelink(sitekey))
await agent.handle_checkbox()
for pth in range(1, times):
result = await agent.execute()
probe = list(agent.qr.requester_restricted_answer_set.keys())
question = agent.qr.requester_question
print(f">> {pth} - Challenge Result: {result} - {question=} {probe=}")
match result:
case agent.status.CHALLENGE_BACKCALL:
await page.wait_for_timeout(500)
fl = page.frame_locator(agent.HOOK_CHALLENGE)
await fl.locator("//div[@class='refresh button']").click()
case agent.status.CHALLENGE_SUCCESS:
return
async def bytedance():
# playwright install chromium --with-deps
async with async_playwright() as p:
browser = await p.chromium.launch(headless=False)
context = await browser.new_context(locale="en-US")
await hit_challenge(context)
if __name__ == "__main__":
asyncio.run(bytedance())
3.配置参数:根据所需的识别模式和其他配置选项,设置相应的参数。这可能包括选择识别模型、调整图像处理参数等。4.提取验证码图像:通过网站或服务的 API 获取 hCaptcha 验证页面,并提取出包含验证码的图像。这通常需要提供一些特定的信息,例如页面 URL 或其他识别标识。5.进行识别:使用 hcaptcha-challenger 提供的识别函数,对提取的图像进行识别操作。该步骤将自动处理验证码图像并尝试破解其内容。6.获取结果:根据返回的结果,判断验证码识别是否成功。如果成功,可以继续进行后续操作,例如自动填写表单或进行其他相关任务。否则,可能需要重新尝试或调整配置参数以改进识别效果。创作不易分享,赞,在看,三连支持一波,感谢。↓↓↓