Веб-скраппинг с помощью Botright: 2025 руководство

Узнайте о плюсах, минусах и лучших альтернативах Botright для быстрого и масштабируемого решения CAPTCHA в современных рабочих процессах веб-скрепинга.
3 мин. чтения
web scraping with Botright blog image

В этом уроке вы узнаете:

  • Что такое “Ботрайт” и как он работает
  • Как использовать его для веб-скреппинга
  • Пошаговое руководство по решению CAPTCHA с помощью Botright
  • Альтернативы Botright для решения CAPTCHA в рабочих процессах скрапинга
  • Ограничения этой библиотеки и способы их преодоления

Давайте погрузимся!

Что такое ботрайт?

Botright – это Python-фреймворк с открытым исходным кодом для автоматизации взаимодействия с браузером и извлечения данных с веб-сайтов. Он использует автоматизацию браузера и скрытные техники для имитации реального поведения пользователя. Это делает его эффективным для сбора данных с динамических сайтов и сайтов, защищенных системами защиты от ботов, такими как Cloudflare.

Он основан на Playwright и использует модели машинного обучения, чтобы помочь вам обойти CAPTCHA. Для того чтобы остановить ботов, CAPTCHA разработаны таким образом, чтобы их было легко решить человеку, но сложно – автоматическим скриптам. Тем не менее, некоторые модели машинного обучения достаточно мощны, чтобы перехитрить их.

👍 Плюсы:

  • Уклонение от обнаружения антиботов: Botright специально создан для обхода систем защиты от ботов. Это достигается за счет таких функций, как изменение отпечатков пальцев браузера, использование реальных или модифицированных браузерных движков и имитация взаимодействия с человеком.
  • Встроенная функция решения CAPTCHA: Он предоставляет встроенные возможности машинного обучения для решения распространенных CAPTCHA.
  • Работает с динамическим контентом: Как инструмент автоматизации работы браузера, он справляется с веб-сайтами на JavaScript и загрузкой динамического контента.

👎 Конс:

  • Много зависимостей: Для реализации функций решения CAPTCHA он опирается на некоторые библиотеки математики, машинного обучения и расширенного взаимодействия. Из-за них размер полной установки может достигать нескольких гигабайт.
  • Развивающийся антибот ландшафт: Эффективность любой библиотеки для защиты от обнаружения ботов может снижаться со временем, поскольку сайты обновляют свои методы обнаружения ботов и CAPTCHA.
  • Не поддерживается: Библиотека обновляется нечасто и требует более старой версии Python, а также некоторых ручных настроек для ее работы.

Как использовать Botright для веб-скрапинга

Помните, что Botright построен поверх Playwright. Поэтому после его инициализации вы можете использовать API для веб-скрапинга, предоставляемый ванильным Playwright:

import asyncio
import botright

async def main():
    # Create a Botright browser instance
    botright_client = await botright.Botright()
    browser = await botright_client.new_browser()

    # Create a new page instance
    page = await browser.new_page()

    # Visit the target page
    await page.goto("https://example.com")

    # Scraping logic with the Playwright API...    

    # Close the botright browser instance
    await botright_client.close()

# Execute the scraper function
if __name__ == "__main__":
    asyncio.run(main())

Обратите внимание, что Botright доступен только в асинхронном режиме, поэтому вы должны использовать его через asyncio.

После инициализации браузера в Botwright вы можете использовать Playwright API для веб-скрапинга.

Как решать CAPTCHA с помощью Botright: Пошаговое руководство

Настоящая суперсила Botright – способность решать CAPTCHA. Согласно официальной странице на GitHub, вот какие CAPTCHA он может решать:

Тип капчи Решено Уровень успеха
hCaptcha hcaptcha-challenger До 90%
reCaptcha reCognizer От 50% до 80%
v3 Интеллектуальный режим Скрытность Ботрайта 100%
v3 Слайдер Captcha cv2.matchTemplate 100%
v3 Nine Captcha Обнаружение CLIP 50%
v3 Icon Captcha cv2.matchTemplate / SSIM / CLIP 70%
v4 Интеллектуальный режим Скрытность Ботрайта 100%
v4 Слайдер Captcha cv2.matchTemplate 100%
v4 GoBang Captcha Математические расчеты 100%
v4 Icon Captcha cv2.matchTemplate / SSIM / CLIP 60%
v4 IconCrush Captcha Математические расчеты 100%

В этом руководстве вы увидите, как решить reCAPTCHA Google с помощью Botright. Следуйте приведенным ниже шагам, чтобы достичь цели!

Требования

Чтобы воспроизвести этот учебник, вам необходимо выполнить следующие условия:

Примечание: Самые последние версии Python не будут работать с Botright. Поэтому на вашей машине должна быть установлена версия 3.10.11 или ниже.

Шаг #1: Настройка проекта и установка ботрайта

В конце этого раздела папка botright_project/, представляющая ваш проект, будет содержать:

botright_project/
    ├── scaper.py
    └── venv/

Где:

  • scraper.py – это Python-файл с логикой решения CAPTCHA в Botright.
  • venv/ – это виртуальная среда Python 3.10.

В Windows вы можете создать каталог виртуальной среды Python 3.10 venv/ следующим образом:

py -3.10 -m venv venv

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

venv\Scripts\activate

Эквивалентно, в Linux выполните команду:

python3.10 -m venv venv

Затем активируйте его с помощью:

source venv/bin/activate

В активированной виртуальной среде обновите pip до последней версии:

python -m pip install --upgrade pip

Затем установите Botright с помощью:

pip install botright --use-pep517
pip install hcaptcha_challenger==="0.10.1.post2"

Примечания:

  • --use-pep517 является обязательным, чтобы убедиться, что все унаследованные зависимости, полагающиеся на файл pyproject.toml, будут установлены правильно.
  • hcaptcha_challenger претерпел значительные изменения с тех пор, как была выпущена последняя версия Botright. В частности, последняя версия hcaptcha_challenger больше не раскрывает методы, вызываемые Botright за кулисами. Поэтому для работы библиотеки необходимо установить определенную версию.

Отлично! Ваша среда настроена для решения CAPTCHA с помощью Botright.

Шаг #2: Определите логику разрешения CAPTCHA

Чтобы решить CAPTCHA с помощью Botright, напишите следующий код в файле scraper.py:

import asyncio
import botright

async def scraper():
    # Start the Botright instance 
    botright_client = await botright.Botright(headless=True)
    browser = await botright_client.new_browser()

    # Create a new page instance
    page = await browser.new_page()

    # Open the target web page with the reCAPTCHA demo
    await page.goto("https://www.google.com/recaptcha/api2/demo")

    # Solve the CAPTCHA
    await page.solve_recaptcha()

    # Screenshot the page to capture the solved CAPTCHA
    await page.screenshot(path="screenshot.png")

    # Close the botright browser instance
    await botright_client.close()

# Execute the scraper function
if __name__ == "_main_":
    asyncio.run(scraper())

Приведенный выше код:

  • Использует метод new_browser() для запуска экземпляра браузера Botright в режиме headless, который представляет собой специальную версию Chromium, оптимизированную для скрытности.
  • Создает новый экземпляр страницы и открывает на нем демонстрационную страницу reCAPTCHA.
  • Решает CAPTCHA с помощью метода solve_recaptcha().
  • Делает скриншот решенной CAPTCHA и закрывает экземпляр браузера.

Примечание: Прочитайте раздел “Решение капчи” в документации, чтобы узнать о поддерживаемых методах, необходимых для решения других типов капч.

Отлично! Вы написали логику для решения reCAPTCHA с помощью Botright.

Шаг № 3: Запустите код

Запустите код с помощью:
bash python scraper.py
Вот что вы увидите, если запустите скрипт в режиме headless(headless=False):

Ботрейт в действии при решении проблемы CAPTCHA

Скриншот.png, созданный скриптом Botright, будет содержать:

Задача reCAPTCHA решена автоматически

В конечном итоге скрипт должен обнаружить все изображения и автоматически решить CAPTCHA. Однако, поскольку точность не гарантируется на 100 %, он может иногда давать сбой. В таких случаях просто продолжайте выполнять скрипт до тех пор, пока он не достигнет успеха. В производстве необходимо реализовать логику автоматических повторных попыток.

Как видите, Botright сочетает модели машинного обучения с автоматизированными инструментами для интеграции человека:

  1. Поймите, о чем спрашивает CAPTCHA
  2. Обнаружение изображений, соответствующих требуемым критериям
  3. Нажмите на эти изображения, как это сделал бы человек.

Миссия выполнена!

Альтернативы Botright для решения CAPTCHA

CAPTCHA эффективны даже против большинства ботов. Хотя они могут нарушить работу обычных пользователей, современные CAPTCHA остаются одним из основных средств защиты от AI-скреперов и краулеров. Именно поэтому они становятся все более популярными, так как большинство сайтов хотят защитить свои страницы и данные от растущей тенденции использования ботов ИИ.

Теперь Botright – не единственный инструмент, способный решать CAPTCHA. Если вам нужно обойти CAPTCHA во время скраппинга, рассмотрите следующие альтернативные библиотеки и подходы:

Ограничения использования ботрайта в веб-скрапинге

Botright – довольно эффективный инструмент для решения CAPTCHA при веб-скрапинге, но он далек от совершенства. Библиотека использует методы машинного обучения, которые не всегда дают стабильные результаты. Кроме того, она несколько устарела и не часто поддерживается.

Это серьезная проблема, особенно если учесть, что современные CAPTCHA становятся все более сложными. В результате модели машинного обучения, лежащие в основе Botright, будут нуждаться в регулярных обновлениях, чтобы идти в ногу со временем.

Короче говоря, не надейтесь, что Botright сможет решить современные CAPTCHA. Особенно это касается новых CAPTCHA, основанных на головоломках, таких как те, что предлагает hCaptcha:

Современная CAPTCHA на основе головоломки от hCaptcha

Как видно из предыдущего видео результата (записанного на скорости 3x), Botright не отличается особой скоростью. Причина в том, что он потребляет много вычислительных ресурсов, чтобы проанализировать каждое новое изображение, представленное reCAPTCHA, и определить правильное для нажатия. В реальных условиях Botright может потратить до 15 секунд на решение reCAPTCHA. Это слишком долго для крупномасштабных операций по скраппингу.

Кроме того, Botright базируется на Playwright, который несет в себе все ограничения, характерные для инструментов автоматизации браузеров. К ним относятся проблемы с отпечатком браузера в безголовом режиме и высокое потребление ресурсов.

Для более быстрого и последовательного решения CAPTCHA в рабочих процессах скрапинга, основанных на автоматизации браузера, лучше использовать облачный браузер, оптимизированный для веб-скрапинга. Таким решением является Scraping Browser.

Scraping Browser – это облачный браузер, который предлагает встроенные функции обхода ботов, автоматическую ротацию IP-адресов, защиту браузера от отпечатков пальцев, механизмы повторных попыток и, конечно же, решение CAPTCHA.

В частности, решение может работать с широким спектром CAPTCHA, включая reCAPTCHA, hCaptcha, px_captcha, SimpleCaptcha, GeeTest CAPTCHA, FunCaptcha, Cloudflare Turnstile, AWS WAF Captcha, KeyCAPTCHA и многие другие.

Заключение

В этой статье вы узнали, как Botright использует автоматизацию браузера и машинное обучение для решения CAPTCHA в целях веб-скрапинга. Несмотря на гибкие возможности по борьбе с ботами, Botright страдает от низкой производительности, высокого потребления ресурсов, устаревших зависимостей и непоследовательных результатов.

Компаниям и командам, которым требуется более быстрое и простое решение для преодоления CAPTCHA в масштабе, Bright Data предлагает несколько передовых продуктов, которые выходят далеко за рамки подхода Botright с открытым исходным кодом:

  • Решатель CAPTCHA: Решатель корпоративного уровня, поддерживающий широкий спектр типов CAPTCHA (включая reCAPTCHA, hCaptcha, Cloudflare и другие) и обеспечивающий высокие показатели успешности без сильных локальных зависимостей.
  • Браузер для скрапинга: Облачный браузер, специально созданный для скрапинга, с автоматической ротацией IP-адресов, встроенной защитой от ботов и беспрепятственным решением CAPTCHA – все это управляется в облаке для эффективности и надежности.
  • Web Unlocker: Механизм разблокировки нового поколения, разработанный для решения самых сложных задач по борьбе с ботами и CAPTCHA, автоматически выбирает оптимальный подход для каждого запроса на сайте без необходимости ручного вмешательства.
  • Услуги прокси: Доступ к крупнейшему в мире пулу прокси-серверов (для жилых помещений, центров обработки данных и мобильных устройств) для обхода геоограничений и повышения анонимности – очень важно для крупномасштабных или распределенных проектов по скрапингу.
  • API-интерфейсы для скреперов: Инструменты для извлечения структурированных веб-данных в масштабе, с функциями защиты от блокировки и решения проблемы CAPTCHA, встроенными в каждый запрос, а также интуитивно понятными панелями управления.

С помощью Bright Data вы можете проводить сканирование веб-сайтов любой сложности, экономить инженерные ресурсы и гарантировать соответствие лучшим отраслевым практикам. Начните бесплатную пробную версию прямо сейчас!

Кредитная карта не требуется