Ресурсы: подача входных данных в ботов BAS
Как модуль «Ресурсы» подаёт входные данные в Browser Automation Studio — списки аккаунтов, прокси, число потоков и случайные данные, безопасно распределяемые по множеству потоков.
Любому реальному боту нужны входные данные: список аккаунтов для регистрации, прокси для ротации, число потоков. В BAS этот вход приходит через модуль «Ресурсы» — и, в отличие от обычного списка, ресурсы созданы для безопасного разделения между множеством потоков сразу.
Что такое ресурс
Ресурс — это входной глобальный параметр скрипта, данные, которые могут динамически меняться во время работы бота. Ресурсы работают как настройки, которые сценарий читает при старте. На практике ресурс — это контейнер данных, чаще всего строки txt-файла.
Типичные примеры:
- число потоков для запуска
- txt-файл с аккаунтами или почтами
- список прокси
- случайно сгенерированные данные
- пути к папкам и другие настройки запуска
Так вы отделяете логику бота от данных, на которых он работает: поток остаётся тем же, вы просто меняете питающий его ресурс.
Ресурсы против списков
Список хранит данные внутри одного потока. Ресурс рассчитан на множество потоков, тянущих из общего пула. Система ресурсов помогает распределять данные по потокам и обрабатывает ситуации, возникающие при одновременном использовании в многопоточном режиме, — ровно там, где наивные списки разваливаются.
Ключевые действия и настройки
Создать ресурс. Создаёт новый ресурс — контейнер данных, например строки из файла. Он открывает настройки, которых нет у списка: счётчики успешных и неуспешных выполнений, одновременное использование и интервалы между использованиями.
Ждать появления. Критически важная настройка, определяющая, что происходит, когда список данных ресурса пуст. Если она включена, действие, запрашивающее ресурс, ждёт, пока данные не появятся; если выключена — действие завершается мгновенно с ошибкой. Правильный выбор здесь не даёт многопоточному боту ни зависнуть навсегда, ни умереть в момент опустошения пула.
Жадный алгоритм. Когда включён, система выдаёт одну и ту же строку снова и снова, пока эта строка не исчерпает счётчик успехов/неудач — и только потом становится доступной следующая. Применяйте, когда каждый элемент данных нужно полностью обработать (например, повторять до успеха) перед переходом дальше.
Частые ресурсы конфигурации запуска
В реальных проектах набор ресурсов настраивает сам запуск, например: threads, working_folders, profiles_folder, temp_working_folder, плюс сгруппированные настройки общих опций, Telegram, капчи, отпечатков браузера, прокси и стран-исключений.
Настройте это один раз — и бот станет конфигурируемым без правки логики: поменяйте список прокси или число потоков в ресурсе, и тот же поток отработает на новой конфигурации. Это разделение — логика в функциях, данные в ресурсах — и делает проект на BAS поддерживаемым по мере роста.
Вопросы и ответы
Что такое ресурс в BAS?
Ресурс — это входной параметр скрипта: контейнер данных, например строки из txt-файла (аккаунты, почты, прокси), или настройка вроде числа потоков. Ресурсы читаются при старте и могут динамически меняться во время работы бота.
Зачем ресурс вместо обычного списка?
В отличие от списка, система ресурсов распределяет данные по потокам и обрабатывает конфликты, возникающие при одновременном использовании данных многими потоками, — счётчики успехов и неудач, лимиты одновременного использования и интервалы между использованиями.
Ещё по теме
- Browser Automation Studio: полный практический гидГид
- Создаём первого бота в Browser Automation StudioПошаговый разбор создания первого рабочего бота в BAS — от пустого проекта до процесса, который ходит по страницам, извлекает данные и работает в несколько потоков.
- Настройка прокси в Browser Automation StudioКак правильно настроить прокси в BAS — типы прокси, привязка по потокам, ротация и проверки, которые не дают мультиаккаунт-ботам попасть под бан.
- Поиск элементов в BAS: селекторы, которые не ломаютсяКак работает поиск элементов в Browser Automation Studio — CSS против XPath, почему записанные селекторы ломаются и как писать селекторы, переживающие изменения страницы.