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

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

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

Видео по теме

Все видео на YouTube-канале

Сделаю под ключ

Не хотите собирать сами? Соберу бота на BAS под вашу задачу

Многопоточность, прокси, антидетект-профили и запуск по расписанию. Весь проект и доступы остаются у вас.

от 300 $ · 3-7 дней