Как устроен BAS: модули, блоки, функции — и браузер против HTTP-клиента
Ментальная модель, после которой Browser Automation Studio складывается в голове: четыре структурных слоя и два способа общения с сайтами — когда рендерить браузер, а когда идти чистым HTTP.
Pavel Duglas
AI Automation & MVP Architect
Большинство осваивает Browser Automation Studio, перетаскивая блоки, пока что-то не заработает. Первого бота так собрать можно, но это ставит потолок вашему росту. Быстрый путь — держать в голове две модели: как BAS устроен внутри и двумя совершенно разными способами он может общаться с сайтом. Поймёте это — остальное детали.
Четыре слоя проекта в BAS
BAS — не плоская куча блоков. У него есть иерархия, и каждый уровень существует, чтобы держать нижний под контролем.
1. Модули. Верхний уровень. Модуль — это переиспользуемый пакет функционала: встроенные идут вместе с BAS, а сообщество публикует ещё множество. Решение капчи, парсинг-хелперы, интеграции — вместо того чтобы собирать заново, вы импортируете модуль и обращаетесь к нему. Модули — это библиотеки мира BAS.
2. Экшн-блоки. Атомы. Каждый блок — отдельный шаг: перейти по URL, кликнуть элемент, ввести текст, извлечь значение, if/else, цикл. Этот слой вы видите чаще всего — ваш проект в основе своей и есть их последовательность. Всё остальное существует, чтобы их организовывать.
3. Функции. Клей между атомами и архитектурой. Функция группирует набор блоков в именованную переиспользуемую единицу, которая принимает параметры и возвращает результат — войти в аккаунт, спарсить один товар, сменить прокси. Пишете логику один раз — вызываете из двадцати мест. Функции — это место, где куча блоков становится настоящей программой.
4. Авто-сценарии. Короткий путь. Вместо расстановки блоков руками вы включаете запись и просто пользуетесь страницей — кликаете, печатаете, переходите — а BAS пишет соответствующие блоки за вас. Это самый быстрый способ набросать поток; потом вы его чистите, параметризуете и заворачиваете удачные части в функции.
Вся суть навыка — в этой прогрессии: записать черновой сценарий, разбить на экшн-блоки, вынести повторяемое в функции и подключить модули, чтобы не изобретать уже решённое.
Два способа, которыми BAS общается с сайтом
Вот различие, которое тихо решает, будет ли ваш проект масштабироваться: у BAS есть два разных типа взаимодействия с сайтами, и они не взаимозаменяемы.
1. Web-браузер. BAS открывает URL в настоящем браузере Chromium — страница грузится и рендерится ровно так, как в браузере на вашем ПК. Выполняется JavaScript, появляется динамический контент, строится визуальная вёрстка. Бот видит то же, что видит человек.
2. HTTP-клиент. BAS шлёт запросы прямо на веб-сервер без открытия страницы в браузере и без отрисовки визуальной составляющей. Он получает сырой ответ сервера — HTML, JSON, что вернётся — и больше ничего. Никакого движка отрисовки, никакого рендера страницы.
Цель «получить данные с сайта» одна, а делают это две совершенно разные машины.
Когда какой использовать
Решающий фактор — ресурсы, а значит, масштаб.
Загрузка страницы в браузере дорогая: отрисовка съедает RAM и CPU. На практике это значит, что одна машина не потянет сильно больше 100–200 потоков браузера, прежде чем захлебнётся. Для многих задач этого хватает — но это жёсткий потолок.
Если вам нужна работа в 1000 потоков и более, браузер — неподходящий инструмент. HTTP-клиент оптимизирован ровно под такую нагрузку и работает полностью без браузера, поэтому то же железо держит на порядок больше параллелизма.
Отсюда правило:
- Браузер — когда данные появляются только после выполнения JavaScript, когда есть вход или анти-бот, проверяющий настоящий браузер, или когда нужно взаимодействовать с визуальными элементами (клики, формы, отпечатки). Корректность важнее голой скорости.
- HTTP-клиент — когда данные уже есть в сыром ответе или вы бьёте прямо в API, и нужен объём. Он легче, быстрее и масштабируется до тысяч потоков — но не видит отрисованной страницы, поэтому всё, что зависит от JavaScript, для него невидимо.
В реальных проектах их часто смешивают: войти и забрать токен браузером (потому что этот шаг требует настоящего), а затем разойтись на тысячи потоков HTTP-клиента для тяжёлой выкачки. Браузер — для частей, которым нужен браузер; HTTP-клиент — для всего остального.
Вывод
Структура говорит, как строить: сценарии в блоки, блоки в функции, функции на модулях. Типы взаимодействия говорят, на чём строить: браузер, когда нужны глаза на странице, HTTP-клиент, когда нужен масштаб. Новички буксуют, потому что тянутся к браузеру для всего подряд и потом удивляются, почему 50 потоков плавят их VPS. Сначала выберите правильный режим взаимодействия, потом аккуратно организуйте — и BAS перестанет с вами бороться.
Связанные услуги
Вопросы и ответы
Чем браузер отличается от HTTP-клиента в BAS?
В режиме браузера BAS управляет настоящим Chromium, который грузит и рендерит страницы как человек, поэтому видит JavaScript и динамический контент. HTTP-клиент шлёт запросы прямо на сервер без отрисовки — гораздо легче и быстрее, но видит только сырой ответ.
Сколько потоков может крутить BAS?
В режиме браузера отрисовка ест RAM и CPU, поэтому одна машина реально тянет 100–200 потоков. В режиме HTTP-клиента браузера для рендера нет, поэтому та же машина выдаёт 1000 потоков и больше.
Что такое модули, экшн-блоки и функции в BAS?
Экшн-блоки — это отдельные визуальные шаги. Функции группируют блоки в переиспользуемые параметризованные единицы вашей логики. Модули — это пакеты готового функционала более высокого уровня, которые вы импортируете. Авто-сценарии — последовательности, которые BAS записывает, пока вы взаимодействуете со страницей.
Похожие кейсы
- Bitsmart — приложение для авто-заработка криптовалют на кранахДесктоп-приложение, которое автоматически собирает 17+ криптовалют с сайтов-кранов 24/7: свой сервер решения капчи, мульти-аккаунты и автовывод.
- Definova — RPA MarketplaceМаркетплейс приложений для автоматизации с внутренней валютой, API для разработчиков и гибкими моделями монетизации.