Подпишитесь на интересующие вас теги, чтобы следить за новыми постами и быть в курсе событий.
Bose — фреймворк для создания веб-ботов, который проще Selenium
Bose Framework — это улучшенный Selemium, который позволяет быстро и просто настраивать ботов и заниматься быстрой отладкой.
6293
Разработка ботов — это сложно.
Детекторы ботов вроде Cloudflare готовы защищать сайты от наших ботов. Настройка Selenium с помощью ChromeOptions слишком громоздкая, а на Windows становится совсем кошмарной. Отладка ботов через журналы — тоже слишком сложно.
Как решить эти боли, не жертвуя скоростью и удобством разработки? Попробуйте Bose.
Bose, как уверяют разработчики фреймворка, — это первая среда разработки ботов, которая максимально упрощает разработку ботов. Фреймворк основан на на Selenium и предлагает ряд функций, упрощающих разработку.
Настраиваем Bose
Первым делом, скопируем изначальный шаблон.
Затем перейдите в скачанный каталог, установите зависимости и запустите проект:
Первый запуск займет некоторое время. Всё потому, что он загружает исполняемый файл драйвера Chrome. Следующие запуски будут гораздо быстрее.
Основные особенности Bose Framework
Добавляет мощные методы, чтобы сделать работу с Selenium намного проще.
Применяет лучшие практики, чтобы избежать обнаружения ботов Cloudflare и PerimeterX.
Сохраняет HTML, снимок экрана и сведения о выполнении для каждой задачи, что упрощает отладку.
Вспомогательные компоненты для записи очищенных данных в виде файлов JSON, CSV и Excel.
Автоматически загружает и инициализирует правильный драйвер Chrome.
Быстро и удобно для разработчиков.
Работаем с Bose
Допустим, вы хотите начать парсинг веб-сайта. Если бы вы использовали Selenium, вам пришлось бы обрабатывать задачи по открытию и закрытию драйвера следующим образом:
Однако Bose Framework использует декларативный и структурированный подход. Вам нужно только написать код ниже, а драйвер Bose сам создаст драйвер, передаст его методу run и закроет работу.
Конфигурация Bose
В Selenium, если вы захотите настроить параметры вроде профиля, пользовательского агента или размера окна, нужно будет написать много кода:
Bose Framework упрощает конфигурацию, инкапсулируя её в свойстве BrowserConfig
:
Обработка исключений
Исключения — это боль при работе с Selenium.
В Selenium, если возникает исключение, драйвер автоматически закрывается, оставляя вам только журналы для отладки.
В Bose, когда в задаче парсинга возникает исключение, браузер остается открытым. Вы можете отслеживать состояние браузера в момент возникновения исключения, что очень помогает при отладке.
Отладка в Bose Framework
При веб-скрапинге часто возникают ошибки вроде неправильных селекторов или страниц, которые не загружаются. При отладке в Selenium вам, возможно, придется отсматривать журналы, чтобы найти, какая возникла проблема.
Bose упрощает отладку, сохраняя информацию о каждом запуске.
После каждого запуска в задачах создается каталог, содержащий три файла, перечисленных ниже:
Файл содержит информацию о выполнении задачи: продолжительность выполнения задачи, IP-адрес задачи, пользовательский агент, размер окна и профиль, который использовался для выполнения задачи.
Это снимок экрана, сделанный до закрытия драйвера.
Это исходный HTML-код, полученный до закрытия драйвера. Код страницы полезно знать, если селекторам не удалось выбрать элементы.
В случае, если ваша задача рухнула из-за исключения, Bose сохраняет error.log
с ошибкой, из-за которой задача рухнула.
Вывод данных
После выполнения парсинга веб-страниц нужно сохранить данные в формате JSON или CSV. Как правило, этот процесс подразумевает написание огромного объёма императивного кода:
Bose упрощает процесс, инкапсулируя данные в модуль вывода для чтения и записи данных. Просто метод write
для файла, который вы хотите сохранить.
Все данные будут сохранены в папке output/
:
Локальное хранилище
В современных браузерах есть локальный модуль хранения, и Bose перенял эту концепцию.
Вы можете импортировать объект LocalStorage
из Bose, чтобы сохранять данные при запуске браузера, что чрезвычайно полезно при очистке больших объемов данных.
Данные хранятся в файле local_storage.json
в корневом каталоге проекта. Вот как можно его использовать:
Другие возможности
Драйвер, полученный при запуске задачи — это расширенная версия Selenium, в которую добавлены мощные методы, упрощающие работу.
Вот некоторые из популярных методов, добавленных в драйвер:
Заключение
Bose — отличный фреймворк, упрощающий скучные части Selenium и парсинга веб-страниц.
Желаем вам удачи и счастливой разработки ботов с помощью Bose Framework!
6293
Что думаете?
9 комментариев
Сначала интересные
Чем отличается от селениума написали, молодцы. Но чем он отличается от селенида?
Селениум как бы создавался для управления браузером, а не для тестирования, и то что его используют для тестирования - это как побочный эффект.
Селенид же в свою очередь создавалась как библиотека для тестирования - вот с ней и надо сравнивать.

Арам Хачатурян, Ого, не знал про Селенид, ушёл изучать, спасибо!
выглядит многообещающе. но вообще, сдается мне, скоро все перетечет в русло онлайн-конструкторов, где можно будет создавать ботов на вкус и цвет по нажатию пары кнопок. хотя и остаются некоторые проблемы, как здесь описано https://tproger.ru/articles/problemy-sovremennyh-konstruktorov-chat-botov/

Владислав Турулов, Поддерживаю
И чем оно лучше undetected-chromedriver или pyppeteer-stealth?
Показать все комментарии