Как настроить автоматический фарминг аккаунтов в антидетект браузере через API: практический кейс и полноценный скрипт для автоматического создания профилей
У меня есть статья, в которой я рассказываю про безопасность в арбитраже трафика - и, как это часто бывает, одно исследование развернулось в целую серию статей, как говориться, чет меня понесло и уже было не остановить. По ходу работы, я собрал два утилитарных скрипта, которые снимают необходимость ручной работы при работе с антидетект-браузером через API. Оба скрипта являются своего рода стартовой точкой для дальнейшей работы и мне кажется, наилучший подход с их использованием - фарминг аккаунтов.
Первый скрипт пачками создаёт профили (с авто-фингерпринтами или вашими подготовленными отпечатками браузера), второй - стартует эти профили из терминала, минуя GUI, и подключается к ним для базовых проверок. Для новичков и "продвинутых новичков" в автоматизации - самое то, чтобы освоить API-подход и нарастить собственные пайплайны. Ну и можно накодить (навайбкодить) что то поверх этой базы. В общем по ходу разберетесь, но скрипты, как по мне получились неплохими.
Зачем вообще автоматизировать создание профилей в антидетект браузере? Фарминг аккаунтов!
Когда у вас десятки и сотни аккаунтов, вручную это выглядит так: "создать профиль → поставить прокси → установить куки → повторить" выгорает время и повышает вероятность ошибки. Тут ошибся с куками, не те отпечатки сунул, тут вообще напутал с проксями, можно беды наделать еще как. А скрипт с вами так не никогда поступит! Массовое создание через скрипт выглядит так:
- экономит время и нервы;
- минимизирует риск ошибки из-за человеческого фактора (напортачить можно перед запуском, тут уже никто за вас не сделает настройку);
- стандартизирует выпуск профилей под нужный стек.
Если у вас 10–15 сущностей - можно все делать и руками. Но как только масштаб растёт, скрипт выигрывает у массового создания в интерфейсе: гибкость выше, логирование прозрачнее, ошибки ловятся раньше.
Контекст мультиаккаунтинга: базовый стек старта фарминга аккаунтов
В мультиаккаунтинге "золотой стандарт" остаётся тем же: антидетект-браузер + резидентные прокси. Первый маскирует десятки характеристик окружения (от Canvas/WebGL до таймзоны и локали) и изолирует профили так, словно это разные устройства. Вторые закрывают вопрос сетевого происхождения. Скрипт написан под Octo Browser (тариф Base с доступом к API), потому что у меня просто был такой тариф, но скрипт для массового создания профилей можно переделать под любой другой антидетект браузер.
Что именно делаем - как работает скрипт для автоматического создания профилей через Антидетект браузер.
Массово создавать профили по API, каждому назначать прокси и, при необходимости, заливать куки. Затем - стартовать эти профили из CLI и прикрепляться к ним через Selenium для проверок/скриптов и в перспективе фармить аккаунты.
Подготовка окружения и данных
Для начала необходимо все подготовить, конкретно мой скрипт требует следующее для старта:
- API-токен. В Octo токен выдаётся в десктопном приложении (да, не в вебе). Он потребуется для каждого запросе через заголовок X-Octo-Api-Token.
- Прокси-лист. создаем файл proxies.csv. Формат для скрипта удобен такой: type,host,port,login,password Например: HTTP,192.0.2.10,24000,mylogin,mypass Тип прокси обязателен - иначе API вернёт 400 ошибку.
- Куки (опционально). cookies.json с маппингом вида:
4. Нумерация - с нуля, чтобы удобно стыковать с циклом.
.env конфиг
5. Зависимости - ставятся простой командой, вы же понимаете, что сперва вам нужен Python?
Исходники у меня лежат в публичном репозитории - структура минимальная: скрипт, .env.example, proxies.csv, cookies.json. Собственно сам репозиторий - Скрипт для автоматического создания профилей в антидетект браузере.
Скрипт №1: пакетное создание профилей через API
Ниже - рабочий пример с переименованными сущностями и аккуратной обработкой лимитов (но я все же рекомендую воспользоваться моим репозиторием, для надежности):
Что тут важного
- Минимальный fingerprint. Достаточно os и screen, остальное Octo "дорисует" консистентно - это ускоряет потоковую генерацию.
- Итерация прокси по кругу. Если профилей больше, чем строк в списке - itertools.cycle раздаст их циклически (осознавайте риски повторного использования IP).
- Квоты API. Заголовки X-RateLimit-* нужны чтобы не ловить 429.
- Отчётность. На выходе получаем понятные логи и UUID каждого созданного профиля.
Скрипт №2: запуск профилей из CLI и проверка сети
Дальше - минимальный исполняемый пример, который стартует профиль через Local API Octo, коннектится к нему Selenium-ом (через порт удаленной отладки) и проверяет внешний IP.
Этот скрипт я сделал прям быстро, и его можно править под себя (как в принципе и предыдущий скрипт).
Как это работает, по шагам
- Конфиг. Берём локальный порт API (OCTO_LOCAL_PORT, по умолчанию 58888) и тот же токен.
- Старт профиля. POST на /api/profiles/start с флагом debug_port: true - в ответ получаем порт удалённой отладки.
- Подключение. Создаём Chrome с debuggerAddress=127.0.0.1:<port> - Selenium цепляется к уже запущенному профилю Octo.
- Проверка сети. Открываем https://httpbin.org/ip, читаем IP из <pre>.
- Завершение. Даже при исключениях драйвер аккуратно закрывается.
Примечание. Для автоподбора совместимого chromedriver удобно поставить webdriver-manager, либо заранее держать драйвер из Chrome for Testing в PATH.
Что дальше можно навесить на эту основу
Эта пара скриптов - скелет для своих задач: проставление тегов при создании, запись UUID в БД, сценарии прогрева/фарминга после старта профилей, отчётность по прокси и сессиям. Если планируете массовые операции на веб-стороне, учитывайте детект автоматизации: базовый Selenium иногда палится антифрод-движками, так что undetected-chromedriver и дополнительные патчи - хорошая идея.
API-подход к антидетект-профилям позволяет перевести рутину в код и высвободить ресурсы на эксперименты. В связке "Octo + резидентные прокси" выпуск сотен профилей перестает быть проектом на полдня и превращается в повторяемую операцию с прозрачной телеметрией. Основа готова - дальше вопрос только в том, какие процессы вы хотите автоматизировать первыми.