Быстрый старт: управление средой Mbbrowser
В этой главе представлен Python-скрипт, который вы можете скопировать и запустить. Он поможет вам пройти путь от нуля до успешного управления антидетект-средой Mbbrowser и выполнения вашей первой задачи автоматизации.
Весь скрипт (Копировать и использовать)
Создайте файл start_selenium.py, вставьте следующий код и измените раздел конфигурации:
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()Запустите скрипт:
python start_selenium.pyОжидаемый результат
⏳ Запуск среды отпечатков Mbbrowser...
✅ Среда запущена. Адрес удаленной отладки: 127.0.0.1:9222
🎉 Управление Selenium успешно установлено!
📄 Заголовок страницы: MBBrowser Anti-association Browser - Multi-Account Solution
✅ Выполнение скрипта завершено!Построчный анализ
1. Вызов ApiServer для запуска среды
response = requests.post(
f"{API_URL}/api/v1/browser/start",
json={"Session_ID": SESSION_ID}
)- Этот шаг говорит Mbbrowser: «Помоги мне открыть среду с ID
XXX». - Получив запрос, ApiServer запускает соответствующий экземпляр Chrome и открывает порт для удаленной отладки.
2. Извлечение debuggerAddress
debugger_address = data["data"]["http"] # например, 127.0.0.1:9222- Информация в поле
http— это адрес порта удаленной отладки Chrome (обычно127.0.0.1:PORT). - Каждая среда Mbbrowser получает уникальный номер порта, что позволяет запускать несколько профилей одновременно без конфликтов.
3. Установка debuggerAddress для управления (Важнейший шаг!)
chrome_options.add_experimental_option("debuggerAddress", debugger_address)
driver = webdriver.Chrome(options=chrome_options)В этом заключается главное отличие автоматизации Mbbrowser от обычного Selenium:
| Действие | Обычный Selenium | Selenium в Mbbrowser |
|---|---|---|
| Создание драйвера | Открывает новое пустое окно Chrome | Подключается к уже запущенному браузеру Mbbrowser |
| Отпечатки | Нет; профиль без защиты | Полные отпечатки (UA, Canvas, WebGL, IP на месте) |
| Состояние Cookies | Пусто; требует повторного входа | Сохраняет предыдущее состояние (если вы входили в аккаунт) |
4. Обработка после выполнения
driver.quit() # Отключает управление Selenium (среда Mbbrowser остается запущенной)NOTE
driver.quit() только отключает канал управления Selenium от браузера — он не закрывает само окно Mbbrowser.
Чтобы полностью закрыть браузер, выполните:
requests.post(f"{API_URL}/api/v1/browser/stop", json={"Session_ID": SESSION_ID})Устранение неполадок
❓ Ошибка: Cannot connect to the Service
Причина: Несоответствие версии chromedriver.exe и ядра Mbbrowser.
Решение:
- Используйте
chromedriver.exeиз папки Mbbrowser и укажите путь к нему вService. - Либо удалите путь в
DRIVER_PATH(установитеNone), чтобы Selenium Manager разобрался сам.
❓ Ошибка: ConnectionError: Cannot connect to ApiServer
Причина: ApiServer не запущен или порт занят.
Решение:
- Убедитесь, что окно терминала ApiServer все еще открыто.
- Проверьте, совпадает ли порт в
API_URLс параметром--portпри запуске. - Проверьте, не блокирует ли брандмауэр порт 8186.
❓ Ошибка: code != 0: Environment startup failed
Причина: Неверный Session_ID или среда уже запущена.
Решение:
- Убедитесь, что вы скопировали правильный Session_ID из Mbbrowser.
- Если среда уже запущена, вызовите API остановки перед повторным запуском.
❓ Браузер открывается, но аккаунт не авторизован
Причина: Вы открываете эту среду впервые, вход в аккаунт еще не выполнялся, поэтому Cookies пусты.
Решение: Это нормально. Далее изучите Справочник по основным API, чтобы узнать, как передавать Cookies или автоматизировать вход.
TIP
Скрипт работает? В следующей главе Справочник по основным API вы научитесь выполнять более сложные операции: поиск элементов, ввод текста, клики, ожидания и скриншоты. Все самое интересное впереди!
