Полноценный гайд по Browser Automation Studio расскажет о всех азах применения функций, модулей, схем автоматических сценариев, а также о технических нюансах экнш-блоков.
Приведённый ознакомительный фрагмент книги Карманный гайд для веб-автоматизаторов Browser Automation Studio предоставлен нашим книжным партнёром — компанией ЛитРес.
Купить и скачать полную версию книги в форматах FB2, ePub, MOBI, TXT, HTML, RTF и других
Глава 1. Модули BAS
"Системы состоят из подсистем, подсистемы — из под подсистем и так до бесконечности — именно поэтому мы проектируем снизу вврх."
Представьте, что вы идете в магазин и берете с собой корзину для продуктов. В лего магазине в красивой коробке и вы его положили в корзину. Но коробка то не пустая, а состоит из маленьких деталей LEGO.
Корзина это и есть модуль в BAS, в которую вы кладете наборы с лего (функции). И каждый по себе отдельный набор вмещает маленькие части конструктора LEGO (действия экшн-блоки).
Каждый модуль уникален и содержит в себе необходимые компоненты (экшн-блоки), которые вы будете использовать при создании функций и автоматических сценариев.
Разработчик использует набор действий для решения какой-либо задачи
Действия помещаются е специальные контейнеры для многократных вызовов с параметрами
Из функций создаются специальные блоки именуемые модулями для подключения к проектам
Модули в BAS делятся на 2 основных вида:
• Основные
• Дополнительные
Основные модули — это набор экшн-блоков, которые вы будете использовать в автоматизации чаще всего.
К основным модулям относятся: браузер, логика скрипта, инструменты, сеть, ожидание, HTTP-клиент, дата и время, файловая система, смена отпечатков браузера, список, путь, работа с профилями, ресурсы, строка, XPATH, JSON, статистика скрипта, регулярные выражения.
Каждый из этих модулей помогает решить конкретную задачу. Например, модуль браузер позволяет вызывать действие"Загрузить", которое загружает указанный вами сайт по URL.
Все из этих модулей мы разберем по отдельности и посмотрим для каких еще функций они предназначены.
Дополнительные модули — это набор экшн-блоков, которые вы будете использовать по мере необходимости и без них вполне можно обойтись если перед вами не стоит конкретной задачи по их использованию.
К ним относятся: открыть/закрыть браузер, буфер обмена, эмуляция бездействия, асинхронный вызов функций, обработка изображений, почта, подтверждение телефона, управление процессами, отправить письмо, Telegram, часовой пояс, взаимодействие с пользователем, встроенные языки, Excel, База данных, URL, контрольная сумма, архивация, FTP, SQL.
Например, модуль обработка изображений помогает редактировать загруженные фотографии и накладывать на них любой текст. Модуль Telegram служит для отправки уведомлений в удобный мессенджер.
Модуль"Браузер"служит для работы с действиями (экшн-блоками), которые не требуют конкретного элемента для применения в браузере.
К модулю"Браузер"относятся следующие действия: загрузить, текущий URL, предыдущая страница, код страницы, ввод текста, разрешение, получить разрешение и положение курсора, прокси, яваскрипт, выполнять при каждой загрузке страницы, сброс, диалог открыть файл, начать перетягивать файл, окно prompt, http аутентификация, прокрутка, скриншот, решить капчу, recaptcha v3, решить капчу кликами, решено неверно, таймаут, настройки браузера, нажать кнопку расширения, режим сенсорного экрана, настройки мыши, уведомления.
В будущем этот список будет дополнятся, поскольку могут появится новые функции и действия.
В модуле"Браузер"предостаточно действий чтобы уже создать простейшего бота.
Однако каждое из действий необходимо комбинировать между собой, чтобы получился полноценный сценарий автоматизации.
Модуль"Логика Скрипта"служит для выполнения условий, циклов, установки локальных и глобальных переменных, их суммирования, вызова функций в 1 и более потоков, завершения работы потоков в успешном и неудачном видах, а также для прерывания скрипта.
К модулю"Логика Скрипта"относятся следующие действия: IF, WHILE, FOR, FOREACH, Break, Continue, Success, Fail, Прервать Скрипт, Установить Метку, Перейти к Метке, Игнорировать Ошибки, Установить Переменную, Увеличить Переменную, Установить Глобальную Переменную, Увеличить Глобал. Переменную,
Вызов Функции, Получить Параметр Функции, Return, Вызов Функции в Несколько Потоков.
Этот модуль вы будете очень часто использовать в своей работе автоматизатора, поскольку вам предстоит работа с циклами, переменными и условиями, а еще с вызовами функций.
Но не волнуйтесь, дальше я расскажу подробнее о каждом действии, чтобы вам было понятно для чего они используются и как их применять.
Модуль"Инструменты"служит для отображения полезной информации в лог, вывода результатов работы скрипта, выполнения кода Javascript внутри сценария, парсинга строки, и генерации случайных чисел.
В состав модуля входят следующие действия: лог, очистить лог, результат, выполнить код, парсить строку, случайное число.
Модуль"Сеть"служит для работы с сетевыми параметрами браузера такими как: кэш и его элементы, cookies, заголовки браузера, маски и статусы запросов, запреты и разрешения загрузок файлов и всплывающих окон.
В состав модуля входят: установить заголовок, сохранить и загрузить cookies, загрузить cookies из http клиента, разрешить кэш, запретить кэш, разрешать запрос, запретить запрос, очистить кэш. данные, очистить маски, получить статус запроса, был ли запрос, получить последний элемент кэша, получить все элементы кэша, запретить и разрешить всплывающие окна и загрузку файлов.
Модуль"Ожидание"служит для вызова пауз между действиями ваших автоматических сценариев, для ожидания селекторов, текстов, загрузки файлов, адреса браузера, загрузки определенного URL сайта, а также для полной загрузки страницы.
Модуль сравнительно небольшой и содержит: ждать полной загрузки, ждать загрузки URL, ждать адреса браузера, ждать текст, ждать CSS, ждать загрузки файла, сон.
Модуль"Http-Клиент"служит для работы с запросами к веб-серверу и сайту, минуя его визуальную составляющую. То есть работа ведется целиком без браузера.
Модуль пользуется популярностью у профессиональных разработчиков, кто хорошо понимает серверную часть сайтов и умеет с ней взаимодействовать.
В модуле присутствуют следующие действия: HTTP-клиент прокси, клиент-сброс, Get-запрос, Post-запрос, Скачать, Текущий URL, содержание ответа, статус ответа, получить заголовок, установить заголовок, очистить заголовки, сохранить и загрузить cookies, загрузить cookies из браузера, завершить работу после ошибки, была ли ошибка, получить текст ошибки, Xpath получить XML, каждый XML, получить текст, получить каждый текст, получить кол-во элементов, проверить существование.
HTTP-запросы на начальном этапе вам не потребуются, поскольку практически все задачи выполняются через браузер, но это займет немного больше времени.
Модуль"Дата и Время"позволяет гибко работать с датами и временем.
BAS использует своё собственное представление даты и времени.
Количество миллисекунд при преобразовании отсчитывается с 1 января 1970 года, 00:00:00 UTC.
Моментом начала отсчёта считается полночь (по UTC) с 31 декабря 1969 года на 1 января 1970, время с этого момента называют"эрой UNIX"(англ. Unix Epoch).
UNIX-время — способ кодирования времени, принятый в операционных системах.
Время UNIX согласуется с UTC.
Способ хранения времени в виде количества секунд очень удобно использовать при сравнении дат (с точностью до секунды), а также для хранения дат: при необходимости их можно преобразовать в любой удобно-читаемый формат.
Дата и время в этом формате также занимают очень мало места (4 или 8 байтов, в зависимости от размера машинного слова), поэтому его разумно использовать для хранения больших объёмов дат. В большинстве случаев эффективнее хранить время в виде одной величины, а не набора полей.
Модуль"Дата и Время"богат своими действиям: строку в дату и обратно, миллисекунды в дату и обратно, создать дату, изменить дату, добавить секунды к дате, разница между датами, дата сейчас, изменить и получить часовой пояс, день месяца, недели, года, получить год, месяц, часы, минуты, секунды и миллисекунды из даты.
Если вы планируете вызывать скрипт по определенному времени, то этот модуль вам идеально подойдет. Либо вы можете воспользоваться встроенным планировщиком задач.
Модуль создан для упрощения работы с файлами на вашем компьютере.
Сюда включены важные действия такие как: читать файл, запись в файл, информация о файле/папке, создать и удалить папку, переместить, копировать файл/папку, поиск файлов, читать или записывать файл в список.
Если ваша задача работать с текстовыми видами файлов или картинками или папка, то вы часто будете использовать данный модуль.
Модуль создан для подмены параметров и свойств браузера, в котором вы производите автоматические операции.
Отпечаток браузера — это набор свойств и характеристик вашего компьютера или ноутбука, которые определяются посещаемым вами сайтом (это видеокарта, разрешение экрана, шрифты, расширения в браузере, батарея ноутбука и тд. тп)
Подменять устройство или отпечаток браузера необходимо всегда, когда вы работаете с любыми сайтами, поскольку они анализируют и выявляют одинаковые устройства.
Подмена устройства необязательна если вы работаете в 1 поток.
Но если вы не будете подменять устройство при многопоточной работе, то сайт вас вычислит и наложит какие-либо ограничения.
Отпечатки браузера по-умолчанию бесплатные для подмены устройств Chrome.
Если вам понадобятся расширенные настройка и другие устройства такие как Iphone, Android, Firefox, то необходимо оплатить подписку к базе отпечатков на 1 или 3 месяца. Это недорого!
Модуль"Список"используется для работы с массивами (списками).
Список или массив — это упорядоченный конечный набор элементов. Например, список задач, имён, фамилий, емейлов, аккаунтов, телефонов.
Часто вам придется работать с большим количеством аккаунтов для какого-либо сайта и тут как раз пригодятся списки.
Например, вам необходимо из списка использовать только 1 конкретный аккаунт, а не все.
Данный модуль позволяет работать с динамическими путями и получать информацию из них.
Динамический путь — это путь к файлу или папке, которыи изменяется в зависимости от его местоположения.
Например, вы работаете с профилями и вам необходимо помещать их в корневую папку со скриптом в процессе его работы. Или, например, вам необходимо из полученного пути определить расширение файла.
Модуль предназначен для создания и переключения между профилями браузера.
По-умолчанию, BAS использует движок браузера Chromium и такие же профили как в обычном браузере Chrome.
Профили — это папки, в которых хранится ваша информация о посещенных сайтах, расширениях, cookies, сохраненный кэш со страниц сайтов и другая важная информация.
Профили помогают сохранить авторизацию на сайтах и повторно на них не авторизовываться.
Модуль"Ресурсы"позволяет осуществлять работу с ресурсами скриптов в BAS.
Ресурсы — это входные глобальные параметры скрипта, которые могут динамически меняться при работе.
Ресурсы используется как настройки при старте сценария автоматизации.
Например, это может быть кол-во потоков, txt файл с аккаунтами, почтами, случайно сгенерированные данные и тд тп.
Один из самых больших модулей в линейке. Позволяет производить любые операции со строками, в том числе подравнивать и очищать лишние символы и даже извлекать почты, телефоны и ссылки из них.
Чаще всего в модуле вы будете использовать"Случайная строка","Шаблон","Получить длину","Заменить строку"и"Парсить CSV строку".
Например с помощью"Случайная строка"можно сгенерировать случайный пароль для регистрации нового аккаунта.
Модуль позволяет работать с ХРАТН.
ХРАТН — язык запросов к HTML/XML страницам.
Один из часто используемых модулей в BAS, с помощью которого можно очень быстро извлекать элементы и тексты со страниц.
Например, вы делаете парсер Avito с использованием браузера и вам необходимо с карточки товара получить хар-ки, описание и фото.
В этом вам поможет ХРАТН.
Модуль служит для работы с общепринятым форматом данных JavaScript Object Notation (JSON).
JSON — это текстовый формат обмена данными, основанный на Javascript и представляющий из себя некий вид типа: {"ключ":"значение"}.
Это набор пар: ключ и значение (в котором любое из значений представлено внутри двойных кавычек, кроме числовых значений). Весь объект JSON находится в фигурных кавычках. Также в ключе может быть записан вложенный объект в фигурных кавычках, также третья вложенность и так далее.
Модуль"JSON"полезно использовать, когда вам необходимо собрать информацию с какого-либо сайта (например, контакты) и вы отсылаете запрос на ее получение через модуль"НТТР-Клиент".
Тогда в ответе чаще всего вы получите строку в формате JSON.
Как раз тут и понадобится набор действий, чтобы извлечь оттуда все данные.
Например, если вы собирает информацию об организации, то это может быть имя, телефон, емейл и другая полезная для вас информация.
Данный модуль используется для получения статистических показателей работы ваших скриптов.
Например, это может быть номер потока, кол-во успешных выполнений и кол-во неудачных выполнений.
Полезный модуль, когда вам необходимо вызывать сценарий в определенных потоках, например, только во 2 и 4.
Тогда вы можете использовать конструкцию IF и проверять номер потока в авто-сценарии.
Модуль предназначен для замены и поиска строк в файлах или нескольких файлах,
Это и есть регулярные выражения.
Лучше простого поиска тем, что позволяет создать шаблон условий, по которым следует найти подстроку и проделать с ней какие-либо манипуляции,
BAS легко и просто работает с регулярными выражениями и может извлекать данные из строк, заменять их или группировать.
Данный модуль содержит всего 2 действия: закрытие и открытие браузера.
Используется когда вам необходимо более гибко управлять состояниями вашего браузера или браузеров в потоках.
По умолчанию браузер закрыт. При использовании действия"Открыть Браузер", он открывается в автоматическом режиме.
Но если закрыть браузер вручную, то автоматически он уже не откроется.
Тут как раз и пригодятся действия модуля.
Данный модуль служит для работы с буфером обмена на вашем компьютере.
Буфер обмена — это временное хранилище информации, которую вы недавно скопировали.
В модуле доступно 2 действия: читать буфер обмена и записывать в буфер обмена.
Данный модуль исходя из названия служит для обеспечения случайных действий в браузере вместо обычного сна.
Эмуляция бездействия проявляет себя в виде скроллинга страницы сайта с помощью колеса мышки, перемещения мышки по экрану и сна.
Модуль содержит только 1 действие: эмуляция бездействия.
Используется как альтернатива обычному сну для того, чтобы вебвизор Яндекс Метрики или любые другие системы отслеживания видели, что вы обычный человек на их сайте.
Модуль служит для работы с асинхронными функциями.
Асинхронные функции — это особые функциидействия, выполняющиеся независимо от основной работы вашего скрипта, параллельно с ним и которые можно приостановить на полпути выполнения.
Вызов обычных функций сопровождается строгим выполнением всей цепочки действий и возвращением результата.
В случае асинхронной функции вы можете ее запускать параллельно, не мешая работе основной функции и получать результаты выполнения в процессе прохождения сценария автоматизации.
Например, если вам необходимо работать с двумя сайтами одновременно: первый сайт мониторит приход кода из письма по email или собирает какую-либо информацию, необходимую для другого сайта, а второй сайт ждёт получение этого письма или ожидает пока в переменную будет записана нужная информация.
Модуль служит для редактирования и обработки изображений, которые вы будете загружать в каких-либо своих задачах.
Например, вы делаете скрипт для автоматического постинга в Telegram и вам необходимо на картинку накладывать какой-либо водяной знак, текст или описание.
В этом поможет данный модуль.
Также очень часто требуется решать капчи и сравнение одного изображения с другим будет очень полезным.
Модуль служит для приёма и обработки содержимого писем в почтовых сервисах.
Например, если вы регистрируете аккаунты на каких-либо сайтах, где приходят письма подтверждения регистрации или специальный код подтверждения.
Данный модуль снабжен всем необходимым функционалом для такого рода задач, является полностью бесплатным и поставляется в официальной сборке BAS.
Модуль позволяет работать с SМS-сервисами приёма кодов активации, звонков-сбросов и дальнейшим их использованием в ваших скриптах.
SМS-сервисы — это специализированные сайты, которые предоставляют услуги по аренде номеров для приема кодов активации с различных сайтов.
Большинство сервисов уже встроено в данный модуль (например, sms-act]vate.ru), но вы также можете написать собственный модуль для сервисов, которые отсутствуют по-умолчанию.
Данный модуль предназначен для вызова различных.ехе файлов на вашем компьютере параллельно с работой авто-сценария, а также для вызова Batch/Bat скриптов.
ВАТ скрипты — это последовательно команд, вызываемых из командной строки CMD.
Например, вам необходимо показать диалоговое окно или проиграть какой-либо звук системы Windows или получить список запущенных процессов при помощи WMIC.
WMIC — это служебная программа для управления Windows процессами.
Модуль служит для отправки писем через протокол SMTP.
SMTP — это сетевой протокол для передачи электронной почты в интернете.
У каждого Email сервиса имеется свой SMTP сервер, через который вы можете рассылать письма.
Но из-за разного рода спама, многие Еmаilсервисы ограничивают скорость рассылки и кол-во через SMTP, а также вводят доп. пароли приложений.
Модуль позволяет работать с отправкой сообщений в Telegram.
Стандартный модуль работает только с отправкой, но также есть расширенный, который позволяет отправлять файлы, документы, скриншоты и текст с кнопками.
Полезно использовать если вы ведет канал в Telegram и нуждаетесь в новом контенте или просто хотите получать уведомления об успешной работе бота.
Также через Telegram можно управлять BAS скриптами.
Модуль предназначен для подстройки местоположения под iр-адрес, координаты, часовой пояс и другие свойства.
Обычно не применяется на практике, так как его заменяет экшн-блок под названием"Прокси".
Полезно и практично подстраивать параметры под iр-адрес, поскольку при малейших расхождениях между вашим IP прокси и тем, который видит сайт, у вас возникнут проблемы с анонимностью.
Модуль позволяет передавать ручной управление пользователю в процессе выполнения авто-сценария, выполнять звуковые оповещения, запрашивать ввод пользователей, а также выполнять Javascript внутри вебинтерфейсов.
Например вы сделали своего первого бота и на какой-то стадии вылазит капча, которую вы не хотите решать автоматически через сервис. Вы конечно же прибегаете к действию"Передать ручное управление", тогда в процессе сможете вмешаться в выполнение, решить капчу и передать управление обратно.
Модуль"Встроенные языки"используется для вызова участков кода при помощи NodeJS и его модулей NPM.
Если вы продвинутый пользователь и вам необходимо выполнять нетривиальные задачи, то этот модуль вам идеально подойдет для реализации. Также модуль полезен, если вы имеете уже написанный готовый код и хотите его использовать на каком-то этапе вашего сценария автоматизации.
Модуль содержит 1 действие: Node.js
BAS также имеет по-умолчанию встроенный и мощный модуль для работы с Excel таблицами.
В модуле вы найдете все необходимые экшнблоки для построения автоматизации, связанной с Excel таблицами.
Тут содержатся: создание файл, чтение, запись, удаление, вставка и количество строк и ячеек, чтение и запись листов, областей ячеек, импорт, экспорт файлов в ресурсы и обратно, получение списка листов, добавление, перемещение, переименование, удаление, очищение листов, ячеек и областей ячеек, преобразование в JSON и обратно, найти одну или несколько ячеек по содержанию, получение и установка формулы в ячейки, стилей, получение и установка ширины столбцов, высоты строки, закрыть файл.
Модуль позволяет полностью автоматизировать работу с Excel, не прибегая к стороннему программному обеспечению и написанию кода.
Данный модуль служит для работы со встроенной базой данных MongoDB от BAS.
Модуль предназначен для работы с локальной базой данных.
Используется как альтернатива Excel, текстовым файлам, только с более структурированными и большими данными.
Вы можете получать записи из базы, записывать, группировать, обновлять и удалять их в неограниченном объёме.
Данный модуль позволяет работать со строками вида URL, Юзер-Агентами и кодированием/ декодированием строк.
Например, вам необходимо сменить протокол с http на https, заменить какие то лишние символы, вырезать протоколы и www, спарсить данные из URL, создать или изменить URL, распарсить юзер-агент на составляющие, закодировать или раскодировать URL или превратить в Punycode.
Punycode — это метод преобразования Unicode символов в разрешенные доменными именами.
Модуль используется для вычисления контрольных сумм строки и файлов.
Контрольная сумма — это значение, полученное в результате хэширования по определенному алгоритму.
Имеет вид: 5d41402abc4b2a76b9719d911017c592
или любые более сложные виды.
Внутри модуля 64 алгоритма хэширования, в том числе SHA-256, md5 и другие.
Используется в основном при работе с HTTP-клиентом (запросы). Лично я использовал при авто-заливе рекламы в TikTok Ads по API.
Данный модуль служит для работы с архивами RAR/ZIP/7z.
Полезно, когда вам необходимо выкачивать объемные сжатые файлы с сайтов или сервера и затем распаковывать их локально через скрипт.
Модуль содержит: распаковать архив, заархивировать папку, файлы, получить список файлов из архива.
Модуль позволяет подключаться к удаленным серверам через протоколы FTP/SSH/SFTP и работать с файловой системой.
FTP — это протокол передачи файлов в сети.
Будет крайне полезно использовать при автоматической загрузке сайтов или html страниц на хостинг.
Например вы занимаетесь арбитражем трафика и вам необходимо генерировать много HTML страниц под разные рекламные предложения и загружать на хостинг в качестве прокладки. Тут как раз пригодится данный модуль!
Модуль используется для полноценной работы с Базами Данных MySQL, mariaDB, postGres, SQLite и msSQL.
Вы можете создать удаленную базу данных на хостинге и к ней делать SQL запросы, получая, изменяя, обновляя или удаляя данные из таблиц.
Например, у вас есть несколько списков аккаунтов, в которых есть дубликаты и вы хотите их проверить на валидность, записывая в свою личную базу данных на сервере. Тогда вы можете добавлять аккаунт после проверки в базу данных и проверять есть ли он уже в базе.
Позволяет создавать новые модули, устанавливать готовые и включать/ отключать установленные. Любой желающий может создать свой модуль и передать кому угодно. Модули упаковываются в формате.zip Модули состоят из функций, которые строятся из экшн-блоков.
Приведённый ознакомительный фрагмент книги Карманный гайд для веб-автоматизаторов Browser Automation Studio предоставлен нашим книжным партнёром — компанией ЛитРес.
Купить и скачать полную версию книги в форматах FB2, ePub, MOBI, TXT, HTML, RTF и других