ZennoPoster и Browser Automation Studio (BAS) - два популярных инструмента для автоматизации веб-браузера. Оба используются для создания ботов, парсеров, спам-скриптов и других утилит, снимающих рутину с пользователя. Но если бы все было так просто и если бы выбор был очевиден - не было бы вокруг сторонников обоих инструментов столько споров.
Порой кажется, что это как фанаты Зенита и Спартака. Оба говорят об одном - футбол (в нашем случае автоматизация) - но одни имеют дорогого спонсора, кучу дорогостоящих легионеров, а другой народную любовь москвичей, ну вы поняли кто из инструментов кого представляет.

Итак, давайте разбираться!
Архитектура и технологии
ZennoPoster
Коммерческий закрытый продукт, написанный на платформе .NET (C#). Актуальная версия ZennoPoster 7 работает под Windows (.NET Framework 4.6.2+) и включает встроенный браузер на основе Chromium и компонент Mozilla Firefox. Проектирование сценариев происходит в визуальном редакторе ProjectMaker, где действия представлены в виде блок-схем. Для расширения возможностей пользователь может вставлять свой код на C# или JavaScript прямо в шаблон, а также вызывать внешние .exe/.bat программы. Такая гибридная архитектура позволяет сочетать наглядную “безкодовую” логику с программированием на .NET.
Разработчики ZennoPoster работают над восьмой версией продукта с совершенно новой архитектурой на базе .NET 6. Это обещает кроссплатформенность (уход от привязки к Windows) и открывает возможность писать модули расширения на любых языках под любую ОС.
Амбициозненько…
Browser Automation Studio
BAS - open-source платформа автоматизации, разрабатываемая сообществом Bablosoft. В основе BAS лежит движок Chromium: по сути, программа управляет "настоящим" браузером Chrome и умеет эмулировать любые действия пользователя на веб-страницах. Интерфейс BAS написан с использованием C++/Qt (кроссплатформенный фреймворк), а встроенным скриптовым языком является JavaScript - движок Node.js с поддержкой npm-модулей. Это означает, что внутри BAS можно выполнять произвольный JavaScript-код, подключать любые библиотеки Node.js и даже писать собственные модули на C++ для расширения функционала. BAS по сути объединяет визуальный конструктор и JavaScript-движок: действия пользователя в браузере записываются как шаги, которые затем могут быть отредактированы либо же дополнены собственным JS-кодом.
Скриптовые возможности обоих инструментов схожи по мощности (в ZennoPoster - C#/.NET, в BAS - JS/Node), но технологический стек все же отличается. Логика правда одна и та же - оба инструмента призваны облегчить пользователю, который не знаком с кодом, написание собственных ботов, скриптов и тп.

Порог вхождения и интерфейс
ZennoPoster
Как написал выше главная цель ZennoPoster (по крайней мере мне хочется в это искренне верить) - снижение барьера для непрофессионалов. Интерфейс ProjectMaker (редактор скриптов, неотъемлемая часть зенки) предоставляет визуальный редактор на основе блоков (действий), которые можно перетаскивать и связывать друг с другом. Новичку не нужны навыки программирования, чтобы начать - достаточно логически мыслить и разбираться с основами HTML-структур (например, понимать XPath или CSS-селекторы, в эру нейросетей уже и этот пункт можно пропускать). ZennoPoster умеет записывать действия: пользователь вручную выполняет серию шагов во встроенном браузере, а инструмент фиксирует их и формирует шаблон (аналог макрорекордера).
Интерфейс ZennoPoster понятен: есть подробная документация, подсказки и обучающие уроки для каждой функции, что облегчает старт (поднимите руку, кто из вас начинал знакомство с новым инструментов с обучающих курсов?). Даже без знаний ЯП можно создавать ботов из готовых блоков - такое вот "программирование без кода" с помощью drag-and-drop.
Однако нельзя сказать, что ZennoPoster совсем прост для полного новичка - потребуется время, чтобы освоить логику условных операторов, работу с переменными, основы HTML-разметки. Порог же вхождения для технически подкованных пользователей невысок, было бы желание (именно это я говорю себе каждый раз со вздохом смотря на Зеннопостер).

Для технически продвинутых пользователей ZennoPoster предоставляет еще большую гибкость: в любой момент можно добавить код на C# или встроить фрагмент JavaScript, который будет исполнен непосредственно в браузере (например, для работы с DOM-элементами страницы). Такой гибридный подход означает, что по мере роста навыков пользователя “потолок” возможностей отодвигается - от простых записанных скриптов можно постепенно переходить к тонкой кастомизации на языке программирования. Но, конечно, чтобы полностью раскрыть потенциал ZennoPoster, знаний одного визуального интерфейса будет недостаточно - действительно сложные задачи потребуют понимания основ C# и .NET, работы с API и библиотеками, регулярных выражений и т.д. То есть, что то действительно крутое написать можно и без знания языков программирования, но с ними можно замахнуться на что то более масштабное, о чем потом будут писать на Хабре.
Browser Automation Studio
BAS также позиционируется как инструмент с низким порогом входа: программирование не требуется, так как все скрипты создаются в визуальном конструкторе.
Интерфейс BAS состоит из трех основных элементов - панель модулей (Browser, HTTP Client, файлы, почта, Fingerprint switcher и т.п.), окно браузера для записи действий и панель, где в виде списка отображаются шаги скрипта.
Каждый шаг - это либо записанное действие (например, клик по элементу), либо добавленный вручную блок (цикл, условие, выполнение JS-кода и т.д.). Запись действий реализована достаточно удобно: BAS запускает собственное окно браузера, визуально очень похожее на обычный Chrome, и фиксирует все клики пользователя. Затем эти шаги можно отредактировать, заменить конкретные значения на переменные, добавить логику и т.п. В итоге получается алгоритм, который BAS способен выполнять автоматически.
Как и ZennoPoster, BAS позволяет создавать ботов без написания кода - всё можно собрать из готовых модулей, используя условные операторы, циклы, переменные через визуальный интерфейс. Но на этом хорошие новости заканчиваются.
Интерфейс BAS менее дружелюбен для новичков. Во-первых, из-за огромного числа функций и модулей он кажется перегруженным, чтобы понять назначение некоторых блоков нужно напрячься и прогуглить (что тоже может стать проблемой из-за "популярности" инструмента, о чем ниже). Во-вторых, документация у BAS в основном англоязычная, а обучающих материалов практически нет (я в свою бытность пытался раскопать что-то похожее на курсы или официальные обучающие ролики, но кроме одного Дугласа, который пилит нишевые ролики, под конкретные задачи я не смог найти ничего толкового).

Есть русскоязычная поддержка, которая держится на сообществе, но как и в любом уважающем себя ITшном сообществе етсь негласное правило - что мы говорим новичку, когда он приходит и спрашивает: - “Подскажите, а как мне сделать вот это?”?
Все правильно: - “Хоспаде, да погугли ты”!

По итогу получается замкнутый круг - если на форуме не помогли, самостоятельно решить проблему вряд ли получится - БАС это одна из тех ниш, о которой в интернете мало что можно толкового найти. Тут либо все сильно сложно для человека без опыта, либо неактуально.

Для программистов и опытных пользователей BAS может быть привлекателен: под капотом - знакомый JavaScript, можно сразу писать свои скрипты, используя отладчик и DevTools, и видеть результат. По сути, BAS объединяет лучшие черты подхода “без кода” и “с кодом”: вы можете сначала набросать сценарий визуально, а при необходимости углубиться и вставить фрагменты JS (или подключить нужный npm-пакет) для тонкой настройки.
Получается что БАС, как бы для новичков, но все же для продвинутых новичков, и не совсем для продвинутых новичков, а все же для тех, кто чуть чуть разбирается в коде. Я, кстати уже и парсеры писать научился, а БАС мне до сих пор не поддается, почему то.

Де юре - оба инструмента рассчитаны на пользователей без навыков классического программирования - и ZennoPoster, и BAS позволяют создать работающий бот, просто записав и настроив действия в браузере.
Де факто - ZennoPoster более юзер френдли чем БАС, который имеет нюансы на старте.
Производительность, многопоточность и стабильность
Одно из ключевых преимуществ инструментов автоматизации - способность выполнять задачи параллельно в большом количестве потоков, что вручную или простыми скриптами реализовать крайне затруднительно. В этом и есть главный смысл этих программ, ведь автоматизировать свои действия на Винде можно при помощи AutoIt, как вариант, и громоздкий Зеннопостер, или сложный для понимания БАС не нужны.
ZennoPoster
Программа изначально спроектирована с упором на многопоточность. В зависимости от приобретенной лицензии, ZennoPoster может запускать разное число потоков: от 1 бесконечности потоков (ограничение - лишь мощность вашего ПК или сервера, где развернут Зеннопостер). ZennoPoster, кстати может эффективно работать в фоне, не "роняя" систему, но я никогда не пробовал запускать 100+ потоков, но вот вам понятный пример - обычный антидетект браузер при таких вводных с радостью ушатает оперативку вашей машины в ноль. Зеннопостер же делает это за счет оптимизациями в ядре и возможностью отключать отображение браузера для фоновых потоков (headless-режим). Кроме того, ZennoPoster умеет выполнять HTTP-запросы напрямую (минуя браузер) - для таких задач нагрузка еще ниже, и число параллельных потоков может исчисляться сотнями без существенного потребления ресурсов.
В плане устойчивости ZennoPoster считается довольно надежным продуктом в многозадачности. Конечно, как и любая сложная система, ZennoPoster не застрахован от глюков (особенно, когда дело касается эмуляции браузера: периодически могут возникать ошибки рендеринга страницы или утечки памяти при очень долгой работе). Но репутация у ZennoPoster сильная - это стабильный инструмент для серьезных нагрузок.
Browser Automation Studio
BAS также предлагает полноценную поддержку многопоточности. В настройках проекта можно указать число потоков, и инструмент будет параллельно запускать несколько экземпляров браузера (или HTTP-клиента) для выполнения задач. Преимуществом BAS является наличие оптимизированного HTTP-клиента, способного работать до 2000 потоков одновременно. Разумеется, 2000 потоков - это про headless-режим (на уровне HTTP-запросов), что идеально для массированного парсинга API или сайтов без сложного JavaScript. При работе же с реальным браузером Chrome число разумных одновременных потоков ограничено ресурсами системы - десятки параллельных браузеров вполне реальны, сотни - уже вряд ли (но можно сочетать браузерные потоки с HTTP-потоками для тяжелых частей работы). В целом, BAS не уступает ZennoPoster по возможности нагрузить CPU на полную.
Очень интересная тема для сравнения запустить 100 потоков на Зеннопостере и 100 потоков на БАС и посмотреть результат.

В отношении стабильности BAS, как любой уважающий себя open-source проект, иногда грешит багами. Баги возникают при обработке информации, утечки памяти или падения браузерных потоков. И вот если про Зеннопостер я говорю - “он не застрахован от глюков”, то про БАС я утверждаю - “он местами багует” - чувствуете разницу? Если у вас многопоточный скрипт на BAS с сотнями потоков, рекомендую тщательно все тестировать, особенно для критически важных сценариев.
Идея для курса - "Баги БАС - чего ожидать от него и как все предусмотреть". Можно даже в два потока запустить обучение.
Масштабируемость
Существенное отличие - лицензирование. ZennoPoster в полной версии стоит денег и ограничивает число потоков в недорогих редакциях. Для максимальной масштабируемости нужна дорогая Pro версия, которая допускает установку на 3 компьютера и неограниченное число потоков. BAS изначально бесплатен и не ограничивает количество потоков - можно хостить скрипты на скольких угодно серверах, никаких встроенных ограничителей нет.
С точки зрения бюджета масштабирование BAS гораздо проще: можно запускать копии бота на нескольких VPS без дополнительных затрат. С другой стороны, ZennoPoster предоставляет более “коробочные” средства для масштабирования - например, отдельный продукт ZennoBox для запуска шаблонов на машинах клиента, встроенный планировщик задач и т.п., что удобно для организации большого проекта. В BAS тоже есть менеджер заданий и даже отдельное приложение BASLoader для запуска скриптов без GUI, но часть этих возможностей доступна только при оформлении премиум-подписки (например, удаленное управление выполнением скриптов).
Оба инструмента способны справиться с очень высокими нагрузками. ZennoPoster - проверенный боец для тяжелого многопоточного боя, демонстрирующий высокую стабильность в долгих запусках (при условии достойного железа и правильной настройки). BAS - чрезвычайно мощный в плане чистой производительности (особенно HTTP-режим), но может потребовать больше внимания к отладке и мониторингу, чтобы избежать сбоев. Если планируются экстремальные объемы (сотни потоков, гигабайты данных), ZennoPoster может дать больше уверенности за счет коммерческой поддержки и оптимизаций, накопленных годами. BAS же привлекает тем, что даже максимальная нагрузка не потребует финансовых вложений - можно просто поднять дополнительные сервера под свои задачи.

Сообщество, документация и поддержка
Какой же инструмент без единомышленников, которые могут направить тебя почитать документацию, правда? Давайте разберем:
Сообщество пользователей
И ZennoPoster, и у BAS есть активное комьюнити, особенно среди русскоязычных специалистов. Есть форум, обширная документация, куча обучающих уроков, куча курсов в интернете. Это все про Зенку, про БАС я такого увы не могу сказать, как уже писал, самое раздражающее, что никто не хочет делиться мудростью, или не хочет этого делать нормально.
Официальная поддержка
Здесь модели различаются. ZennoPoster - платный продукт, соответственно, покупатель получает доступ к техподдержке через тикеты/e-mail. Команда ZennoLab достаточно активно взаимодействует с пользователями, например проводят вебинары. За ZennoPoster стоит профессиональная команда, которая заинтересована удерживать пользователей качественным сервисом (что логично, учитывая лицензионную модель).
В случае BAS прямой официальной поддержки нет (в бесплатной версии). Однако разработчики предлагают платную Premium-подписку (~$80 в год), в которую входит персональная поддержка (по e-mail или Skype, с гарантированным ответом в течение 2 рабочих дней).

Сам разработчик BAS (под ником bablosoft) достаточно отзывчив на форуме и исправляет критические баги, хотя и без гарантий по времени. Обучающие материалы у БАС сильно устаревшие, на мой вкус, но справедливости ради отмечу, последнюю попытку познать БАС я делал около года назад, правда есть ощущение, что с того момента ничего не поменялось.
В плане комьюнити и поддержки ZennoPoster предлагает более “официозный” путь - вы платите и получаете помощь разработчиков, тогда как BAS - путь самурая, где многое зависит от сообщества и вашей самостоятельности (если только вы не оплатили премиум, хотя к нему тоже есть вопросики).

Возможности автоматизации: UI, API, капчи, интеграции
Посмотрим, какие конкретно задачи способны выполнять ZennoPoster и BAS, и какие технологии для этого предлагают.

Работа с UI (эмуляция браузера)
Оба инструмента предназначены для полной автоматизации действий в браузере. Это значит, что скрипт может делать всё, что сделал бы человек: нажимать кнопки, заполнять поля форм, перемещать мышь, прокручивать страницы, переключаться между вкладками и т.д. ZennoPoster и BAS обеспечивают 100% эмуляцию браузера, поскольку используют движок Chromium (Chrome).
BAS поддерживает нажатия клавиш и движения мыши на низком уровне (Native emulation) для максимального сходства с действиями человека.
ZennoPoster аналогично умеет эмулировать любые события - вплоть до генерации естественных пауз, случайных смещений курсора, ввода по символам, чтобы скрипт выглядел “человечно”. Более того, ZennoPoster имеет систему профилей пользователя, которая при каждом запуске генерирует уникальные параметры окружения: от имени и аватара до часового пояса, списка плагинов, user-agent браузера и т.д.. Это позволяет каждому потоку действовать как отдельный “человек”, что важно для обхода анти-бот систем.
Насчет генерации уникальных параметров окружения - это отличный кейс для проверки и сравнения с обычными антидетект браузерами, насколько параметры Зенки не палятся антибот системами. Я делал сравнение антидетект браузеров, и вероятно скоро буду проверять зенку.
Ну и важное дополнение - ZennoPoster поддерживает сразу два браузерных движка - Chrome и Firefox (Gecko). На практике, правда чаще используется встроенный Chromium, но в некоторых случаях возможность попробовать альтернативный движок бывает полезна.
BAS из коробки ориентирован на Chrome. При этом BAS может эмулировать другие браузеры за счет интеграции с FingerprintSwitcher - сервисом подмены отпечатков браузера. По одному клику BAS способен менять отпечатки браузера: Canvas, WebGL, AudioContext, списки шрифтов, заголовки User-Agent, разрешение экрана и десятки других параметров среды. В умелых руках - это мощный инструмент для антидетекта, позволяющий прикидываться любым браузером (Safari на iPhone, Firefox на Linux и пр.) без установки реальных браузеров - достаточно загрузить профиль через API FingerprintSwitcher (сервис платный - 30 долларов в месяц, есть бесплатная сильно урезаная версия, которая для многопотока, да еще и с ротацией, точно не подойдет).

В ZennoPoster тоже реализована тема антидетекта: во-первых, как уже писал, профили Zenno генерируются с разными параметрами, а во-вторых, ZennoPoster умеет работать в режиме интеграции с антидетект браузерами. Например, его можно подружить с Octo Browser и запускать потоки в контейнерах антидетект-браузера. Ну и они скоро планируют раскатать свой антик, который вообще может позволить делать такие вещи, что человеческий разум не готов это осознать с первого раза, но инструмент реально должен получится топовым, если сделают как надо.
Взаимодействие с API и HTTP
Не всегда для автоматизации нужен реальный браузер - если задача тривиальна (например, массово дернуть какой-нибудь JSON API), эмуляция UI только замедлит процесс. Оба инструмента это понимают и предоставляют средства для прямой работы с HTTP-запросами.
ZennoPoster содержит встроенный HTTP-клиент, позволяющий слать GET/POST запросы, загружать файлы, работать с HTTP-заголовками и куки без запуска браузерного движка. В Zenno есть также модули для работы с FTP, SMTP/IMAP (почта) и другими протоколами.
BAS имеет очень быстрый HTTP-клиент с поддержкой до 2000 потоков. В скрипте BAS можно параллельно использовать и браузерные, и чисто HTTP-потоки - например, сначала спарсить список URL’ов через API запросы, а затем открыть их в полном браузере для действий с UI. Это повышает эффективность.
Оба инструмента поддерживают WebSocket и позволяют анализировать сетевой трафик: BAS интегрирован с Chrome DevTools (Network панель), ZennoPoster имеет свой лог HTTP-запросов и возможность фильтрации трафика. Таким образом, помимо автоматизации интерфейса, ZennoPoster и BAS могут применяться и как своего рода HTTP-бенчмарки и парсеры, работая со страницами на уровне HTML-кода.
Распознавание капч
Работа с капчами - бич любого автоматизатора. И ZennoPoster, и BAS предлагают обширные возможности по обходу капч. Во-первых, интеграция с внешними сервисами: оба инструмента “из коробки” дружат с популярными решениями типа Anti-Captcha, RuCaptcha, 2Captcha, DeathByCaptcha и т.п.. Достаточно вписать ключ API - и платформа будет отправлять капчи на распознавание автоматически, получая ответ и подставляя его в форму. Во-вторых, поддержка своих локальных решателей: ZennoLab выпускает отдельный софт CapMonster для массового решения капч с помощью нейросетей. BAS, хотя и конкурент ZennoPoster, имеет встроенную интеграцию с CapMonster и другими сервисами из коробки.
Интеграции со сторонними сервисами
Помимо капч, в типичных задачах автоматизации часто нужны SMS-активаторы, сервисы для приемов почты, сервисы по генерации контента и т.п. ZennoPoster имеет внушительный список - поддерживается подключение к ~35 разным сервисам одним кликом. В их числе: популярные SMS-сервисы (например, SMS-Activate, SIM5 и др.), антидетект браузеры, спиннеры текста для рерайта контента, сервисы анализа, переводчики и прочее. Многие интеграции реализованы через плагинную систему.
Browser Automation Studio тоже открыт к интеграциям - благодаря Node.js можно установить любой пакет, например, официальный SDK какого-нибудь сервиса, и напрямую использовать его функции. Помимо этого, BAS имеет встроенные решения для приема SMS и работы с почтой. Это покрывает типовой сценарий регистрации аккаунтов, когда нужно поймать код из SMS или перейти по ссылке в письме.
Естественно, работа с прокси также поддерживается на уровне платформы в обоих продуктах: можно задать списки прокси, подключать прокси-сервера разных типов (HTTP(S), SOCKS5) для разных потоков и настраивать ротацию. В ZennoPoster даже есть отдельный модуль ProxyChecker для автоматической проверки и подбора живых прокси. BAS умеет менять прокси “на лету” и отключать слежение через WebRTC, чтобы избежать утечки реального IP.
Работа с данными и файлами
Большинство проектов автоматизации связано с обработкой данных - будь то парсинг текстов или генерация контента. Тут оба инструмента предлагают богатый набор возможностей.
ZennoPoster отлично справляется с разбором HTML: встроены инструменты поиска по XPath и CSS, есть удобные средства парсинга по регулярным выражениям, извлечения нужных фрагментов страницы. Имеются модули для анализа HTML-кода (например, можно вытащить все ссылки, заголовки и т.п.), а также для работы с JSON/XML. ZennoPoster позволяет сохранять и загружать данные из таблиц Excel, CSV, баз данных - учтены SEO задачи, где часто нужно оперировать списками ключевых слов, таблицами результатов и т.д.
BAS в этом плане не отстает: есть полноценный редактор SQLite-базы прямо в программе, можно подключать внешние базы данных. Поддерживается чтение/запись CSV, TXT, JSON, работа со списками и очередями данных (загрузка из файла, перемешивание, поэлементное извлечение и т.п.). Для генерации текстового контента оба инструмента предлагают Spintax - синтаксис шаблонов для случайного выбора синонимов, вариантов фраз и т.д.
Ну и куда же без ИИ - ничто не мешает интегрировать современные ИИ-сервисы: например, в BAS можно вызвать OpenAI API через HTTP-запрос или написать код на Python (вызвав его через командную строку) и таким образом использовать GPT-3/4 для генерации текста. ZennoPoster аналогично - благодаря C# можно обращаться к любым веб-сервисам, в том числе к ИИ.
Расширение функционала через код
Если какого-то действия вдруг нет среди готовых - всегда можно дописать код. ZennoPoster поддерживает вставки C#-кода, BAS - JavaScript. BAS позволяет подключать любые npm-библиотеки, то есть фактически нет ограничений: нужно решить уравнение - подключаете math.js, нужна обработка аудио - подключаете ffmpeg-binaries и т.д.
ZennoPoster с C# тоже весьма гибок, но подключение внешних библиотек чуть сложнее: поддерживаются .dll на .NET (можно добавить свою сборку .NET и использовать внутри шаблона).
В BAS, благодаря Node.js, есть готовые пакеты практически для всего. С другой стороны, C# даёт доступ к Windows API, к системным функциям, что тоже открывает двери для нестандартных интеграций.
В функциональном плане ZennoPoster и Browser Automation Studio идут ноздря-в-ноздрю - оба являются универсальными комбайнами для веб-автоматизации. Они умеют: автоматизировать браузер (эмулируя любое поведение пользователя), работать с сетью на низком уровне (HTTP, sockets), обходить защиты (капчи, антибот проверки, антидетект), интегрироваться с внешними системами (SMS, почта, API), обрабатывать и хранить данные (файлы, базы, списки), расширяться через код и плагины. Если же говорить о различиях: BAS выигрывает в возможности мгновенно использовать богатую экосистему Node.js и открытости для собственных модификаций (при желании вы можете форкнуть исходники и добавить свою фичу в сам BAS). ZennoPoster сильнее в “коробочных” интеграциях - изначально встроено очень много всего, зачастую не требующего программирования.
То, что в ZennoPoster реализовано как готовый блок, в BAS может потребовать небольшой скрипт на JS.
Расширяемость и кастомизация
Современные задачи автоматизации разнообразны, и иногда требуется выйти за пределы возможностей, предусмотренных создателями инструментов. Здесь важно, насколько платформа позволяет расширять функционал под уникальные требования.
ZennoPoster
Изначально проектировался как расширяемый инструмент. Есть несколько уровней расширения:
Свой код в шаблоне: блок “C# скрипт” позволяет написать на встроенном редакторе C# любой код, используя .NET-классы, и затем этот код выполняется во время работы бота. Аналогично, есть действие для выполнения JavaScript (в контексте страницы) или даже PHP-скрипта (через запуск интерпретатора). Это — самый простой способ “дописать” недостающую логику.
Внешние библиотеки: ZennoPoster позволяет подключать .dll библиотеки. Можно встраивать внешние сборки прямо в файл шаблона, шифровать их и вызывать из шаблона как нативный код. Это означает, что вы можете, например, написать свою библиотеку на C# с использованием каких-то специальных API, подключить ее - и у вас в Zenno появятся новые методы для вызова.
Плагины: ZennoPoster имеет Action Designer, с помощью которого разработчики или опытные пользователи могут создавать полностью новые действия, интегрированные в GUI. Такие плагины пишутся на C# и оформляются определенным образом, после чего подключаются к ProjectMaker. Они могут иметь свой UI (набор параметров, полей ввода) и логику.
Удаленное управление: через ZennoPoster API можно управлять запуском шаблонов и получать результаты - например, из внешней программы посылать задачи ZennoPosterу. Кроме того, ZennoPoster можно запускать по командной строке, что позволяет встраивать его в более крупные системы.
Browser Automation Studio
Будучи open-source, BAS уже по определению очень кастомизируем. Способы расширения:
JavaScript Modules: BAS позволяет писать модули на JS (Node.js) и подключать их через Module Manager. С их помощью можно добавлять новые визуальные блоки, которые под капотом выполняют заданный JavaScript.
C++ Modules: для критичных по производительности или низкоуровневых вещей можно писать расширения на C++. Насколько я знаю, используют это нечасто, только если нужно внедрить, к примеру, поддержку особого протокола.
Изменение исходного кода: с премиум-доступом разработчики дают право и инструкции, как скомпилировать BAS из исходников. Теоретически ничто не мешает вам форкнуть BAS и добавить любую функциональность. Конечно, это путь для упорных (хотелось написать “упоротых”) и опытных программистов.
Собственный интерфейс ботов: интересная фишка BAS - UI-конструктор для скомпилированных приложений. Если вы делаете самостоятельную утилиту на базе BAS и хотите, чтобы у нее был красивый интерфейс для пользователя (например, формы ввода настроек, лог, кнопки), то в премиум-версии доступен HTML/JS интерфейс. Можно верстать окно приложения как веб-страницу, с кнопками и скриптами - и это окно будет показано пользователю бота. В ZennoPoster тоже есть функция “интерфейс бота” - можно создавать простенькие формы для запускаемых проектов, но гибкость там меньше (скорее набор стандартных элементов).
По уровню расширяемости BAS более открыт изначально. Если вам важно полностью контролировать инструмент, вносить изменения в его работу - BAS предоставляет полный доступ. ZennoPoster, хоть и закрыт, имеет все необходимые точки расширения через плагины и код, чтобы реализовать почти любую задумку внутри его экосистемы. Для 99% сценариев штатных средств хватит с головой у обоих платформ.
Цены, лицензирование и версии
Здесь инструменты резко расходятся: один - платный проприетарный софт, другой - бесплатный open-source. Этот фактор может оказаться решающим при выборе инструмента.
ZennoPoster
Распространяется по платным лицензиям.
Lite - 3470 руб. (примерно $45) единовременно. Ограничения: 1 поток, установка только на 1 компьютер. На мой вкус подходит лишь для ознакомления и самых простых задач.
Standard - 8700 руб. (~$110). До 5 параллельных потоков, установка на 2 компьютера. Это популярный вариант для одиночек: 5 потоков часто достаточно для небольших проектов.
Professional - 14700 руб. за полгода (либо подписка 1970 руб./мес). Даётся неограниченное число потоков, установка на 3 ПК, максимальная скорость ZennoProxyChecker и приоритетная поддержка. Фактически, Pro - выбор профессионалов и компаний, кому нужен максимум мощи и обновления.
ZennoLab периодически дает скидки на свои продукты (как правило пару раз в год, на Черную пятницу и на день рождения сервиса).
Обновления у ZennoPoster бесплатны в течение оплаченного периода (полгода/год), дальше - нужно продлевать поддержку, если хотите обновляться (но можно и не продлевать, оставаясь на старой версии, в моем круге есть ребята, которые сидят на Зенке 2020 года и не планируют обновляться, следуя главному правилу - “Работает - не трогай””).
Browser Automation Studio
Бесплатен для скачивания и использования. Вся базовая функциональность доступна сразу и без ограничений. Можно создавать неограниченное число ботов, запускать сколько угодно потоков, компилировать приложения - всё бесплатно. Монетизация BAS идет по модели freemium:
Платная Premium подписка ($80 в год или $40 за 6 мес) дает дополнительные фишки, в их числе:
Профессиональная поддержка (приоритетные ответы разработчиков в приватном порядке).
Защита исходного кода при компиляции бота: возможность шифровать скрипт, ставить пароль и лицензии на скомпилированное приложение.
Веб-интерфейс для управления лицензиями и обновлениями ваших ботов у клиентов.
Расширенный пользовательский интерфейс: создание полностью кастомных UI на HTML/JS для своих приложений.
Отдельный планировщик задач (BASFarm), позволяющий запускать и управлять скриптами без открытия основного BAS.
Доступ к актуальному исходному коду (репозиторий с последними изменениями) - для желающих модифицировать BAS и всегда иметь на руках свежий код.
Бесплатная версия BAS уже достаточно мощная и не имеет ограничений по функционалу скриптов. Отличия касаются в основном коммерческого применения (защита и распространение ботов) и саппорта. Таким образом, для личного использования или внутрикомандной разработки можно спокойно обходиться бесплатным BAS. А вот если вы планируете продавать свои решения или нужна персональная поддержка - тогда имеет смысл вложиться в подписку.
Если бюджет нулевой - выбор очевиден в пользу BAS. Если бюджет есть, то при сравнении “функционал за деньги” ZennoPoster оправдывает свою стоимость обилием встроенных фич и поддержкой.
Для многопоточных задач ZennoPoster Pro стоит немало (почти $200 за полгода), тогда как BAS тот же результат даст бесплатно - это существенный плюс BAS для команд, гоняющих сотни потоков на ферме серверов. Впрочем, $80 в год за премиум BAS + бесплатное ПО vs. $200 за ZennoPoster - разница тоже не астрономическая для бизнеса. Здесь скорее важно: готовы ли вы платить сразу или хотите идти по пути экономии. Многие, кстати, используют связку: начинают проект на бесплатном BAS, обкатывают идею, а затем, когда требуются гарантии и масштабирование, переходят на ZennoPoster или докупают премиум BAS - в зависимости от того, что лучше подходит.
Примеры применения и специализация
Что же реально делают с помощью ZennoPoster и BAS? Думаю для тех, кто совсем не знаком с этими инструментами возникает такой вопрос.
Парсинг данных: Автоматический сбор информации с сайтов - будь то цены товаров, контакты компаний, контент страниц - один из самых популярных кейсов. ZennoPoster отлично подходит для сложного парсинга, где нужно эмулировать браузер (например, прокручивать страницу, нажимать “Показать еще” и т.д.). Его сильная сторона - надежная эмуляция пользователя, благодаря чему можно добывать данные даже с динамических SPA-сайтов. BAS же блестяще проявляет себя в массовом парсинге через API или прямые запросы, за счет быстрого HTTP-клиента.
Регистрация и управление аккаунтами (“аккаунтинг”): Массовая регистрация учетных записей на сайтах, почтовых ящиках, социальных сетях - рутинный и востребованный процесс. Инструменты автоматизации позволяют за минуты регистрировать сотни аккаунтов, где человек бы тратил часы.
Социальные сети и SMM: Автоматизация действий в соцсетях: накрутка подписчиков, лайков, рассылка в личку, постинг контента.
SEO и маркетинг: Здесь спектр задач огромен: улучшение поведенческих факторов сайта (все эти накрутчики ПФов - это все реализовано на Зенке), массовое размещение контента (рассылка пресс-релизов, добавление записей на форумах и блогах), линкбилдинг - регистрация на веб 2.0 платформах, подача объявлений на доски, создание PBN-сетей. ZennoPoster был создан SEO-шниками и для SEO-шников, поэтому в этой среде он стал стандартом де-факто. BAS постепенно тоже проникает в SEO, но менее выраженно. За счет бесплатности он привлек начинающих оптимизаторов, которые пишут скрипты под свои нужды. Однако в глубоко SEO-интегрированных вещах ZennoPoster может предложить больше.
Арбитраж трафика и спам: В арбитраже (особенно сером, где продвижение идет запрещенными методами) автоматизация - ключ к масштабированию. Рассылка рекламных сообщений, создание и прогрев аккаунтов, управление сотнями объявлений - всё это делается при помощи этих инструментов.
Тестирование веб-приложений: Не столь очевидный, но допустимый сценарий использования - автоматизация для тестирования. По сути, ZennoPoster или BAS могут выступать аналогами Selenium: прогонять сценарии по сайту и проверять, всё ли работает. Они удобны для нагрузочного тестирования (например, залогинить 50 пользователей одновременно и выполнить действия) или для регрессионного теста (пройтись по всем формам, убедиться в отсутствии ошибок). Конечно, специализированные фреймворки лучше интегрируются с CI/CD, но в некоторых случаях выбирают Zenno/BAS за простоту создания сценария (особенно, если тестировщик не программист).
Прочие нестандартные задачи: В силу гибкости инструменты применяют где только можно. Например, криптотрейдинг - написание ботов для взаимодействия с биржами через веб-интерфейс (отслеживать котировки, нажимать кнопку “Buy” при условии и т.п.). Или автоматизация в сфере финансов - заполнение форм на сайтах налоговой, сбор данных с госпорталов (вместо ручного кликанья). Управление рекламными кабинетами (создание кампаний, выгрузка отчетов). Мониторинг сайтов - боты, которые проходят по списку сайтов и проверяют их на доступность, изменения контента и т.д. Практически любую повторяющуюся веб-операцию можно упаковать в шаблон ZennoPoster или BAS.
Для кого подходит ZennoPoster, а для кого BAS?
Давайте попробуем порассуждать кому какой инструмент может быть предпочтительнее.
Новички в автоматизации (маркетологи, арбитражники без опыта программирования): Здесь я бы советовал ZennoPoster. Причины: более дружественный интерфейс на русском, официальная поддержка, изобилие обучающих материалов, а также наличие готовых шаблонов и услуг разработчиков на каждом углу (проще найти специалиста “по ZennoPoster”, чем “по BAS”).
Опытные разработчики, программисты: Парадоксально, но программисты часто выбирают BAS, а не ZennoPoster. Причина - любовь к open-source и гибкости. Разработчик, знающий JavaScript, почувствует себя в BAS как дома: можно сразу писать код, использовать Git для версионирования (скрипты BAS - это по сути текст на YAML/JSON + JS), подключать пакеты, дебажить через знакомые инструменты. ZennoPoster для программиста может показаться излишне закрытым и медлительным. С другой стороны, если программист специализируется на .NET/C#, ему может понравиться ZennoPoster - возможность писать C# внутри и расширять функционал через DLL. Но следует помнить: C#-код в Зеннопостере запускается внутри контекста шаблона, что накладывает ограничения.
SEO-специалисты и интернет-маркетологи: Если человек в первую очередь SEOшник, а не технарь, то ZennoPoster - практически обязательный инструмент в его наборе. Такие специалисты готовы инвестировать в инструмент, потому что знают отдачу. Что касается БАС - то тут вообще все сложно, специалистов крайне мало, они как правило варятся внутри комьюнити, но можно найти их на Кворке, правда экспертиза таких специалистов не всегда высокого уровня (не всех, естественно, но конкретно мне еще не попадались грамотные специалисты под БАС на Кворке, как правило это новички, с которыми много каши и не сваришь). Маркетологу, который не хочет погружаться глубоко в технические детали, проще нанять фрилансера под ZennoPoster, чем искать эксперта по BAS. В целом, для SEO/маркетинга с точки зрения “купил и пользуюсь” ZennoPoster выглядит привлекательнее - заплатил, получил продукт с поддержкой. BAS скорее выбор одиночек или команд, где есть хотя бы один технически грамотный сотрудник. Это как выбирать между Вордпрессом и Джумлой (я когда то пошел против системы и начал создавать сайты на Джумле, но по итогу у меня их несколько на Вордпрессе).

Арбитражники: Тут аудитория разношерстная - есть и новички без знаний, и продвинутые технари. В целом оба инструмента можно использовать для решения арбитражных задач, и тут уже зависит от подхода. Кто то предпочитает бесплатно, кто-то надежно, и тех и тех понять можно.
Заключение

ZennoPoster, и BAS способны решать одни и те же задачи - выбор между ними похож на выбор между двумя швейцарскими ножами с немного разным набором инструментов. Опытные автоматизаторы зачастую владеют обоими: используют там, где каждый сильнее, или в зависимости от условий (лицензия, пожелания клиента и т.п.). Для начинающего пользователя безопасной ставкой будет попробовать демо-версию ZennoPoster и бесплатный BAS - благо, это ничего не стоит, - и посмотреть, как фишка ляжет. Каждый из этих инструментов при грамотном использовании творит чудеса автоматизации, освобождая время и открывая новые возможности в этих ваших интернетах.
Ну а дальнейший выбор - вопрос личного удобства, специфики задач и, возможно, симпатий к тому или иному сообществу. Одно можно утверждать точно: и ZennoPoster, и Browser Automation Studio - мощное оружие в руках разработчика-автоматизатора, и владение ими дает огромное преимущество в мире, где ценится скорость и масштабируемость рутинных процессов.