Туториалы по обходу капчи

Как обойти CAPTCHA с помощью Selenium на Python

How to Recognize, Solve, and Bypass Captcha Automatically Using Selenium

В статье описаны подходы к обходу CAPTCHA с помощью Selenium. В отдельном блоке собраны ссылки на рабочие примеры кода для разных типов CAPTCHA.

Работа с CAPTCHA в Selenium: пошаговое руководство

Чтобы обойти CAPTCHA, ваш скрипт должен выглядеть как поведение настоящего пользователя: естественные действия, реалистичный браузер. Selenium — инструмент для автоматизации браузера, а вместе с 2Captcha он позволяет решать reCAPTCHA, image CAPTCHA и другие варианты.

В этой части вы узнаете, как использовать Python и Selenium для обхода CAPTCHA. Поехали!

Шаг #1: Подготовка проекта на Python

Убедитесь, что у вас установлены:

  • Python 3
  • Google Chrome

Если у вас уже есть скрипт на Selenium, пропустите настройку. Иначе — создайте новый проект:

mkdir selenium_captcha_demo
cd selenium_captcha_demo

Создайте виртуальное окружение:

python3 -m venv venv
source venv/bin/activate  # для macOS/Linux
venv\Scripts\activate   # для Windows

Создайте файл script.py в вашей IDE.

Шаг #2: Установка Selenium

Активируйте виртуальное окружение и установите Selenium:

pip install selenium

Шаг #3: Настройка Selenium WebDriver

Пример запуска браузера в headless-режиме:

from selenium import webdriver

options = webdriver.ChromeOptions()
options.add_argument("--headless")
driver = webdriver.Chrome(options=options)

driver.quit()

Headless-режим позволяет запускать браузер без графического интерфейса.

Шаг #4: Решение CAPTCHA через 2Captcha

Часть 1: Отправка CAPTCHA

from selenium import webdriver
import requests
import time

options = webdriver.ChromeOptions()
options.add_argument("--headless")
driver = webdriver.Chrome(options=options)

driver.get("https://example.com")

captcha_site_key = driver.execute_script("return document.querySelector('[data-sitekey]').getAttribute('data-sitekey')")

API_KEY = "your_2captcha_api_key"
response = requests.post("http://2captcha.com/in.php", data={
    "key": API_KEY,
    "method": "userrecaptcha",
    "googlekey": captcha_site_key,
    "pageurl": "https://example.com"
})

captcha_id = response.text.split('|')[1]
print("Ожидание решения CAPTCHA...")

Часть 2: Получение решения

time.sleep(20)
result = requests.get(f"http://2captcha.com/res.php?key={API_KEY}&action=get&id={captcha_id}")

while "CAPCHA_NOT_READY" in result.text:
    time.sleep(5)
    result = requests.get(f"http://2captcha.com/res.php?key={API_KEY}&action=get&id={captcha_id}")

captcha_solution = result.text.split('|')[1]
driver.execute_script(f"document.getElementById('g-recaptcha-response').innerHTML = '{captcha_solution}';")

driver.find_element("id", "submit_button").click()
driver.quit()

Шаг #5: Использование Selenium Stealth

Selenium Stealth скрывает признаки автоматизации и помогает избежать блокировок.

Установка:

pip install selenium-stealth

Импорт:

from selenium_stealth import stealth

Шаг #6: Настройка stealth()

stealth(
    driver,
    user_agent="Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/126.0.0.0 Safari/537.36",
    languages=["en-US", "en"],
    vendor="Google Inc.",
    platform="Win32",
    webgl_vendor="Intel Inc.",
    renderer="Intel Iris OpenGL Engine",
    fix_hairline=True,
)

Теперь ваш браузер выглядит как обычный пользовательский, а не автоматизированный.


Готовые примеры Python + Selenium

Чтобы ускорить старт, мы подготовили репозитории с рабочими примерами:


Решение CAPTCHA на других языках

Вы можете интегрировать 2Captcha и Selenium с другими языками:


Заключение

CAPTCHA может показаться преградой, но с правильным подходом — это просто задача. Используйте Selenium Stealth для маскировки и 2Captcha — для автоматического решения. Вместе они обеспечивают стабильную и надёжную автоматизацию.

Попробуйте 2Captcha уже сегодня и забудьте про ручной ввод капчи!