Перейти к содержимому
PD
Browser Automation Studio 8 мин чтения

Как устроен BAS: модули, блоки, функции — и браузер против HTTP-клиента

Ментальная модель, после которой Browser Automation Studio складывается в голове: четыре структурных слоя и два способа общения с сайтами — когда рендерить браузер, а когда идти чистым HTTP.

PD

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 записывает, пока вы взаимодействуете со страницей.

Похожие кейсы

Похожие статьи

  • #bas
  • #браузерная-автоматизация
  • #http-клиент
  • #архитектура
  • #rpa

Есть идея? Давайте превратим её в работающий продукт.

Пропустите месяцы неопределённости. Получите понятную архитектуру, рабочий MVP и систему, которую можно тестировать, продавать и масштабировать.