Автоматизация браузера Camoufox: запуск и подключение

Camoufox - это модифицированный браузер Firefox, оптимизированный для веб-скрапинга и обхода систем обнаружения ботов. Для его эффективного использования требуется корректная настройка процесса запуска и последующего подключения.

1. Запуск серверов и браузеров через Python/Playwright

Исходный скрипт на Python запускает несколько экземпляров Camoufox на разных портах. Каждый экземпляр работает в отдельном потоке и доступен через WebSocket.

  • Для каждого конфигурационного набора (порт, путь, имя) создаются два потока: один для сервера, другой для автоматизации браузера.
  • Сервер запускается на указанном порту (например, 2525).
  • URL для подключения к браузеру формируется по шаблону: ws://localhost:{port}/{path} (например, ws://localhost:2525/browser2525).
  • Запуск серверов и браузеров происходит с задержками, указанными в конфигурации, для стабильности.

2. Ручная аутентификация и долгосрочная сессия

После запуска в браузере Camoufox вручную выполняется вход в аккаунты (например, Google и Midjourney). Ключевое требование - браузер должен оставаться активным продолжительное время, чтобы другие скрипты могли подключаться к уже аутентифицированной сессии и работать в её контексте.

3. Проблема подключения стороннего скрипта

Второй скрипт пытается подключиться к работающему экземпляру браузера, используя тот же WebSocket URL (например, ws://localhost:2525/browser2525).

  • Сначала проверяется доступность порта Camoufox.
  • Затем выполняется попытка подключения через playwright.firefox.connect().

Однако возникает проблема: вместо подключения к существующему браузеру с сохранённым контекстом (логинами, cookies), Playwright запускает новый, чистый экземпляр. Это приводит к потере аутентифицированной сессии и делает невозможным выполнение задач, требующих сохранения состояния.

Для успешной автоматизации необходимо обеспечить стабильное подключение именно к уже запущенному и настроенному экземпляру Camoufox, а не создание новой изолированной сессии.