Skip to content

Быстрый старт: управление средой Mbbrowser

В этой главе представлен Python-скрипт, который вы можете скопировать и запустить. Он поможет вам пройти путь от нуля до успешного управления антидетект-средой Mbbrowser и выполнения вашей первой задачи автоматизации.


Весь скрипт (Копировать и использовать)

Создайте файл start_selenium.py, вставьте следующий код и измените раздел конфигурации:

python
import requests
import time
from selenium import webdriver
from selenium.webdriver.chrome.options import Options
from selenium.webdriver.chrome.service import Service

# ============================
# Раздел конфигурации: измените на свои данные
# ============================
API_URL    = "http://127.0.0.1:8186"
SESSION_ID = "вставьте_ваш_session_id"        # Получите через ПКМ → Копировать ID среды в Mbbrowser
# Путь к chromedriver.exe в папке Mbbrowser (или None для автоматического подбора Selenium Manager)
DRIVER_PATH = r"C:\Program Files (x86)\Mbbrowser_v7.10.20.219\chromedriver.exe"


def start_browser():
    """
    Шаг 1: Говорим ApiServer Mbbrowser открыть конкретную среду.
    Шаг 2: Получаем debuggerAddress из ответа.
    Шаг 3: Используем Selenium для перехвата управления средой.
    Шаг 4: Выполняем бизнес-логику.
    """

    # ── Шаг 1: Открываем среду Mbbrowser ──────────────────────────
    print("⏳ Запуск среды отпечатков Mbbrowser...")
    try:
        response = requests.post(
            f"{API_URL}/api/v1/browser/start",
            json={"Session_ID": SESSION_ID},
            timeout=30
        )
        data = response.json()
    except requests.exceptions.ConnectionError:
        print("❌ Не удалось подключиться к ApiServer. Убедитесь, что он запущен и порт верен!")
        return

    if data.get("code") != 0:
        print(f"❌ Ошибка запуска среды: {data.get('message')}")
        return

    # ── Шаг 2: Извлекаем адрес удаленной отладки ────────────────────
    # Формат data["data"]["http"]: 127.0.0.1:9222
    debugger_address = data["data"]["http"]
    print(f"✅ Среда запущена. Адрес удаленной отладки: {debugger_address}")

    # ── Шаг 3: Настройка Selenium для управления ───────────────────
    chrome_options = Options()
    # Это ключевой параметр для подключения к существующему браузеру (вместо создания нового)!
    chrome_options.add_experimental_option("debuggerAddress", debugger_address)

    # Если у вас есть chromedriver из папки Mbbrowser, укажите путь к нему;
    # в противном случае установите None, чтобы Selenium Manager скачал его автоматически.
    if DRIVER_PATH:
        service = Service(executable_path=DRIVER_PATH)
        driver = webdriver.Chrome(service=service, options=chrome_options)
    else:
        driver = webdriver.Chrome(options=chrome_options)

    print("🎉 Управление Selenium успешно установлено!")

    # ── Шаг 4: Выполнение вашей бизнес-логики ─────────────────────────
    try:
        # Переход на целевой URL
        driver.get("https://www.mbbrowser.com")
        print(f"📄 Заголовок страницы: {driver.title}")

        # Пауза на 3 секунды для наблюдения
        time.sleep(3)

        print("✅ Выполнение скрипта завершено!")
    finally:
        # ВАЖНО: это только «разрывает соединение с Selenium».
        # Сама среда Mbbrowser продолжит работу.
        # Чтобы закрыть браузер полностью, вызовите API /api/v1/browser/stop.
        driver.quit()


if __name__ == "__main__":
    start_browser()

Запустите скрипт:

bash
python start_selenium.py

Ожидаемый результат

⏳ Запуск среды отпечатков Mbbrowser...
✅ Среда запущена. Адрес удаленной отладки: 127.0.0.1:9222
🎉 Управление Selenium успешно установлено!
📄 Заголовок страницы: MBBrowser Anti-association Browser - Multi-Account Solution
✅ Выполнение скрипта завершено!

Построчный анализ

1. Вызов ApiServer для запуска среды

python
response = requests.post(
    f"{API_URL}/api/v1/browser/start",
    json={"Session_ID": SESSION_ID}
)
  • Этот шаг говорит Mbbrowser: «Помоги мне открыть среду с ID XXX».
  • Получив запрос, ApiServer запускает соответствующий экземпляр Chrome и открывает порт для удаленной отладки.

2. Извлечение debuggerAddress

python
debugger_address = data["data"]["http"]  # например, 127.0.0.1:9222
  • Информация в поле http — это адрес порта удаленной отладки Chrome (обычно 127.0.0.1:PORT).
  • Каждая среда Mbbrowser получает уникальный номер порта, что позволяет запускать несколько профилей одновременно без конфликтов.

3. Установка debuggerAddress для управления (Важнейший шаг!)

python
chrome_options.add_experimental_option("debuggerAddress", debugger_address)
driver = webdriver.Chrome(options=chrome_options)

В этом заключается главное отличие автоматизации Mbbrowser от обычного Selenium:

ДействиеОбычный SeleniumSelenium в Mbbrowser
Создание драйвераОткрывает новое пустое окно ChromeПодключается к уже запущенному браузеру Mbbrowser
ОтпечаткиНет; профиль без защитыПолные отпечатки (UA, Canvas, WebGL, IP на месте)
Состояние CookiesПусто; требует повторного входаСохраняет предыдущее состояние (если вы входили в аккаунт)

4. Обработка после выполнения

python
driver.quit()  # Отключает управление Selenium (среда Mbbrowser остается запущенной)

NOTE

driver.quit() только отключает канал управления Selenium от браузера — он не закрывает само окно Mbbrowser.

Чтобы полностью закрыть браузер, выполните:

python
requests.post(f"{API_URL}/api/v1/browser/stop", json={"Session_ID": SESSION_ID})

Устранение неполадок

❓ Ошибка: Cannot connect to the Service

Причина: Несоответствие версии chromedriver.exe и ядра Mbbrowser.

Решение:

  1. Используйте chromedriver.exe из папки Mbbrowser и укажите путь к нему в Service.
  2. Либо удалите путь в DRIVER_PATH (установите None), чтобы Selenium Manager разобрался сам.

❓ Ошибка: ConnectionError: Cannot connect to ApiServer

Причина: ApiServer не запущен или порт занят.

Решение:

  1. Убедитесь, что окно терминала ApiServer все еще открыто.
  2. Проверьте, совпадает ли порт в API_URL с параметром --port при запуске.
  3. Проверьте, не блокирует ли брандмауэр порт 8186.

❓ Ошибка: code != 0: Environment startup failed

Причина: Неверный Session_ID или среда уже запущена.

Решение:

  1. Убедитесь, что вы скопировали правильный Session_ID из Mbbrowser.
  2. Если среда уже запущена, вызовите API остановки перед повторным запуском.

❓ Браузер открывается, но аккаунт не авторизован

Причина: Вы открываете эту среду впервые, вход в аккаунт еще не выполнялся, поэтому Cookies пусты.

Решение: Это нормально. Далее изучите Справочник по основным API, чтобы узнать, как передавать Cookies или автоматизировать вход.


TIP

Скрипт работает? В следующей главе Справочник по основным API вы научитесь выполнять более сложные операции: поиск элементов, ввод текста, клики, ожидания и скриншоты. Все самое интересное впереди!