Skip to content

Guide de démarrage rapide : Prendre le contrôle de l'environnement Mbbrowser

Ce chapitre fournit un script Python que vous pouvez directement copier et exécuter, vous guidant de zéro jusqu'à la prise de contrôle réussie d'un environnement d'empreinte Mbbrowser et à la réalisation de votre première tâche d'automatisation.


Script complet (Copier et utiliser)

Créez un fichier nommé start_selenium.py, collez le code suivant et modifiez la section de configuration :

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

# ============================
# Section de configuration : Modifiez avec vos propres informations
# ============================
API_URL    = "http://127.0.0.1:8186"
SESSION_ID = "remplacer_par_votre_session_id"        # Obtenir via clic droit → Copier l'ID de l'environnement dans Mbbrowser
# Chemin vers chromedriver.exe dans le répertoire Mbbrowser (ou définissez sur None pour la correspondance auto de Selenium Manager)
DRIVER_PATH = r"C:\Program Files (x86)\Mbbrowser_v7.10.20.219\chromedriver.exe"


def start_browser():
    """
    Étape 1 : Dire à l'ApiServer de Mbbrowser d'ouvrir un environnement spécifique.
    Étape 2 : Obtenir le debuggerAddress à partir de la valeur de retour.
    Étape 3 : Utiliser Selenium pour prendre le contrôle de cet environnement.
    Étape 4 : Exécuter la logique commerciale.
    """

    # ── Étape 1 : Ouvrir l'environnement Mbbrowser ──────────────────────────
    print("⏳ Démarrage de l'environnement d'empreinte 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("❌ Impossible de se connecter à l'ApiServer. Assurez-vous qu'il est démarré et que le port est correct !")
        return

    if data.get("code") != 0:
        print(f"❌ Échec du démarrage de l'environnement : {data.get('message')}")
        return

    # ── Étape 2 : Extraire l'adresse de débogage à distance ──────────────────────
    # Format de data["data"]["http"] : 127.0.0.1:9222
    debugger_address = data["data"]["http"]
    print(f"✅ Environnement démarré. Adresse de débogage à distance : {debugger_address}")

    # ── Étape 3 : Configurer Selenium pour prendre le contrôle ───────────────────
    chrome_options = Options()
    # C'est le paramètre clé pour prendre le contrôle d'un navigateur existant (au lieu d'en créer un nouveau) !
    chrome_options.add_experimental_option("debuggerAddress", debugger_address)

    # Si vous avez le chromedriver inclus avec Mbbrowser, spécifiez son chemin ;
    # Sinon, définissez sur None pour que Selenium Manager le gère automatiquement.
    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("🎉 Prise de contrôle par Selenium réussie !")

    # ── Étape 4 : Exécuter votre logique commerciale ─────────────────────────
    try:
        # Naviguer vers l'URL cible
        driver.get("https://www.mbbrowser.com")
        print(f"📄 Titre de la page actuelle : {driver.title}")

        # Attendre 3 secondes pour l'observation
        time.sleep(3)

        print("✅ Exécution du script terminée !")
    finally:
        # IMPORTANT : Cela ne fait que "déconnecter la connexion Selenium."
        # L'environnement Mbbrowser continuera de s'exécuter.
        # Pour fermer complètement le navigateur, appelez l'API /api/v1/browser/stop.
        driver.quit()


if __name__ == "__main__":
    start_browser()

Exécuter le script :

bash
python start_selenium.py

Sortie attendue

⏳ Démarrage de l'environnement d'empreinte Mbbrowser...
✅ Environnement démarré. Adresse de débogage à distance : 127.0.0.1:9222
🎉 Prise de contrôle par Selenium réussie !
📄 Titre de la page actuelle : MBBrowser Anti-association Browser - Multi-Account Solution
✅ Exécution du script terminée !

Analyse ligne par ligne

1. Appeler l'ApiServer pour démarrer l'environnement

python
response = requests.post(
    f"{API_URL}/api/v1/browser/start",
    json={"Session_ID": SESSION_ID}
)
  • Cette étape dit à Mbbrowser : "Aidez-moi à ouvrir l'environnement d'empreinte avec le Session_ID XXX."
  • À la réception de la requête, l'ApiServer démarre l'instance Chrome correspondante et ouvre un port de débogage à distance.

2. Extraire debuggerAddress

python
debugger_address = data["data"]["http"]  # ex : 127.0.0.1:9222
  • Les informations contenues dans le champ http correspondent à l'adresse du port de débogage à distance de Chrome (généralement 127.0.0.1:PORT).
  • Chaque environnement Mbbrowser possède un numéro de port unique attribué automatiquement par Mbbrowser, permettant des exécutions simultanées sans conflit.

3. Définir debuggerAddress pour prendre le contrôle (Étape cruciale !)

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

C'est la différence essentielle entre l'automatisation Selenium de Mbbrowser et le Selenium standard :

ActionSelenium standardSelenium Mbbrowser
Créer le PiloteLance une nouvelle fenêtre Chrome viergeSe connecte et prend le contrôle d'un navigateur Mbbrowser existant
EmpreinteAucune ; état nuEmpreintes complètes (UA, Canvas, WebGL, IP tous en place)
État des cookiesVide ; nécessite une nouvelle connexionConserve l'état de connexion précédent (si déjà connecté)

4. Traitement après exécution

python
driver.quit()  # Déconnecte le contrôle de Selenium (l'environnement Mbbrowser continue de s'exécuter)

NOTE

driver.quit() déconnecte seulement le chemin de contrôle de Selenium du navigateur — il ne ferme pas la fenêtre Mbbrowser.

Pour fermer complètement le navigateur, invoquez :

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

Dépannage

❓ Erreur : Cannot connect to the Service

Raison : Incompatibilité de version de chromedriver.exe avec le noyau Mbbrowser.

Solution :

  1. Utilisez le chromedriver.exe inclus dans le répertoire Mbbrowser et spécifiez son chemin dans Service.
  2. Alternativement, supprimez la config DRIVER_PATH (définissez sur None) et laissez Selenium Manager s'en charger.

❓ Erreur : ConnectionError : Cannot connect to ApiServer

Raison : l'ApiServer n'est pas en cours d'exécution, ou le port est occupé.

Solution :

  1. Confirmez que la fenêtre du terminal de l'ApiServer est toujours en cours d'exécution.
  2. Confirmez que le port dans API_URL correspond au paramètre --port.
  3. Vérifiez si le pare-feu bloque le port 8186.

❓ Erreur : code != 0 : Échec du démarrage de l'environnement

Raison : Session_ID incorrect, ou l'environnement est déjà en cours d'exécution.

Solution :

  1. Confirmez dans Mbbrowser que vous avez copié le bon Session_ID.
  2. Si l'environnement est déjà en cours d'exécution, appelez l'interface d'arrêt avant de redémarrer.

❓ Le navigateur s'ouvre, mais pas en état de connexion

Raison : C'est la première fois que l'environnement est ouvert ; vous ne vous êtes pas encore connecté, les cookies sont donc vides.

Solution : C'est normal. Ensuite, lisez Référence API de base pour apprendre à injecter des cookies ou à automatiser la connexion.


TIP

Le script fonctionne ? Le prochain chapitre Référence API de base vous apprendra à effectuer des opérations plus complexes avec Selenium : positionnement d'éléments, saisie, clic, attente et captures d'écran... tout y est !