#
Extension Quickstart
#
Loading the NopeCHA extension in a browser.
Pros
No coding required.
Fast and cheap.
Works on all sites.
Impossible to detect.
Cons
Proxies may be needed.
Browser required (e.g. Selenium, Puppeteer, Playwright).
To solve CAPTCHAs, the NopeCHA browser extension uses the Recognition API to find locations to click or characters to type.
#
Official NopeCHA browser extensions
If you need to deploy the extension to multiple machines, you can refer to the Extension for Experts guide to pre-configure the extension settings using the
manifest.json
file. Please note that in most cases, you do not need to do this. While official NopeCHA browser extensions receive automatic updates, you will need to manually update the extension if you use the expert guide.
#
Python example
import requests
from selenium import webdriver
NOPECHA_KEY = 'YOUR_KEY_HERE' # Replace with your key.
options = webdriver.chrome.options.Options()
options.add_argument('--no-sandbox')
options.add_argument('--disable-infobars')
options.add_argument('--disable-dev-shm-usage')
options.add_argument('--disable-blink-features=AutomationControlled')
options.add_experimental_option('excludeSwitches', ['enable-automation'])
options.add_experimental_option('useAutomationExtension', False)
# Download the latest NopeCHA crx extension file.
# You can also supply a path to a directory with unpacked extension files.
with open('ext.crx', 'wb') as f:
f.write(requests.get('https://nopecha.com/f/ext.crx').content)
options.add_extension('ext.crx')
# Start the driver.
driver = webdriver.Chrome(options=options)
# Set the subscription key for the extension by visiting this URL.
# You can programmatically import all extension settings using this method.
# To learn more, go to "Export Settings" in the extension popup.
driver.get(f"https://nopecha.com/setup#{NOPECHA_KEY}")
# Go to any page with a CAPTCHA and the extension will automatically solve it.
driver.get('https://nopecha.com/demo/hcaptcha')
import requests
import zipfile
import undetected_chromedriver.v2 as uc
NOPECHA_KEY = 'YOUR_KEY_HERE' # Replace with your key.
options = uc.ChromeOptions()
options.add_argument('--no-sandbox')
options.add_argument('--disable-infobars')
options.add_argument('--disable-dev-shm-usage')
options.add_argument('--disable-blink-features=AutomationControlled')
options.add_argument('--no-first-run --no-service-autorun --password-store=basic')
# Download the latest unpacked NopeCHA extension.
# Undetected chromedriver does not support loading from a crx file.
with open('chrome.zip', 'wb') as f:
f.write(requests.get('https://nopecha.com/f/chrome.zip').content)
with zipfile.ZipFile('chrome.zip', 'r') as zip_ref:
zip_ref.extractall('nopecha')
options.add_argument(f"--load-extension={os.getcwd()}/nopecha")
# Start the driver.
driver = uc.Chrome(options=options)
# Set the subscription key for the extension by visiting this URL.
# You can programmatically import all extension settings using this method.
# To learn more, go to "Export Settings" in the extension popup.
driver.get(f"https://nopecha.com/setup#{NOPECHA_KEY}")
# Go to any page with a CAPTCHA and the extension will automatically solve it.
driver.get('https://nopecha.com/demo/hcaptcha')