a lightweight Python library for solving hCaptcha challenges with selenium and neural networks
NOTE: this package is still in early development.
If you encounter any issues or unexpected behaviours, please report them!
pip install hcaptcha-solver
from hcaptcha_solver import hcaptcha_solver
from selenium import webdriver
# setup chromedriver in english (other languages not supported yet)
options = webdriver.ChromeOptions()
options.add_experimental_option('prefs', {'intl.accept_languages': 'en,en_US'})
driver = webdriver.Chrome(options=options)
driver.get("https://accounts.hcaptcha.com/demo") # open any url with hCaptcha
# create Captcha_Solver object and solve hCaptcha
captcha_solver = hcaptcha_solver.Captcha_Solver(verbose=True)
captcha_solver.is_captcha_present(driver) # returns True
captcha_solver.solve_captcha(driver) # solves the hCaptcha
Only V1 hCaptchas are supported - any other captcha types will be skipped.
The correct images are selected using Convolutional Neural Networks trained on labeled hCaptcha data.
The models are chosen by inspecting the captcha header, so the language has to be english in order for the matching to work. (See Issue #6)
The package features models for a handful of hCaptcha tasks. The currently available models and their labeling accuracies are visualized in the figure below. The accuracy was measured on limited data and is therefore not exact.
Functionality for V2 captchas is planned in a similar way to V1 captchas.
If you encounter any bug, error or unexpected behaviour in general, please report them with an issue giving as much detail as possible - I will try to make this package easy-to-use for everyone.
Forks and pull requests are very welcome. You can also create issues to discuss possible changes or improvements.
To help collecting captchas, run dev/main.ipynb
and submit the results. In this notebook you can also explore the data availability and train models.
updated 15/08/2023