Bose — фреймворк для создания веб-ботов, который проще Selenium
Bose Framework — это улучшенный Selemium, который позволяет быстро и просто настраивать ботов и заниматься быстрой отладкой.
7К открытий9К показов
Разработка ботов — это сложно.
Детекторы ботов вроде 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!
7К открытий9К показов