Skip to content

Bắt đầu nhanh: Kiểm soát môi trường Mbbrowser

Chương này cung cấp một script Python mà bạn có thể sao chép và chạy trực tiếp, hướng dẫn bạn từ đầu đến khi tiếp quản thành công một môi trường vân tay Mbbrowser và hoàn thành nhiệm vụ tự động hóa đầu tiên của mình.


Script Hoàn Chỉnh (Sao chép và sử dụng)

Tạo một tệp có tên start_selenium.py, dán mã sau và sửa đổi phần cấu hình:

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

# ============================
# Phần Cấu Hình: Thay đổi thông tin của bạn
# ============================
API_URL    = "http://127.0.0.1:8186"
SESSION_ID = "thay_the_bang_session_id_cua_ban"        # Lấy qua nhấp chuột phải → Sao chép ID môi trường trong Mbbrowser
# Đường dẫn đến chromedriver.exe trong thư mục Mbbrowser (hoặc đặt là None để Selenium Manager tự động khớp)
DRIVER_PATH = r"C:\Program Files (x86)\Mbbrowser_v7.10.20.219\chromedriver.exe"


def start_browser():
    """
    Bước 1: Yêu cầu Mbbrowser ApiServer mở một môi trường cụ thể.
    Bước 2: Lấy debuggerAddress từ giá trị trả về.
    Bước 3: Sử dụng Selenium để kiểm soát môi trường đó.
    Bước 4: Thực hiện logic nghiệp vụ.
    """

    # ── Bước 1: Mở Môi Trường Mbbrowser ──────────────────────────
    print("⏳ Đang khởi động môi trường vân tay 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("❌ Không thể kết nối với ApiServer. Đảm bảo nó đã được khởi động và cổng chính xác!")
        return

    if data.get("code") != 0:
        print(f"❌ Khởi động môi trường thất bại: {data.get('message')}")
        return

    # ── Bước 2: Trích Xuất Địa Chỉ Debug Từ Xa ──────────────────────
    # định dạng data["data"]["http"]: 127.0.0.1:9222
    debugger_address = data["data"]["http"]
    print(f"✅ Môi trường đã khởi động. Địa chỉ debug từ xa: {debugger_address}")

    # ── Bước 3: Cấu Hình Selenium Để Tiếp Quản ───────────────────
    chrome_options = Options()
    # Đây là tham số chính để tiếp quản trình duyệt hiện có (thay vì tạo mới)!
    chrome_options.add_experimental_option("debuggerAddress", debugger_address)

    # Nếu bạn có chromedriver đi kèm với Mbbrowser, hãy chỉ định đường dẫn của nó;
    # Nếu không, hãy đặt là None để Selenium Manager tự động xử lý.
    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("🎉 Tiếp quản Selenium thành công!")

    # ── Bước 4: Thực Hiện Logic Nghiệp Vụ Của Bạn ─────────────────────────
    try:
        # Điều hướng đến URL mục tiêu
        driver.get("https://www.mbbrowser.com")
        print(f"📄 Tiêu đề trang hiện tại: {driver.title}")

        # Đợi 3 giây để quan sát
        time.sleep(3)

        print("✅ Hoàn thành thực thi script!")
    finally:
        # QUAN TRỌNG: Việc này chỉ "ngắt kết nối Selenium."
        # Môi trường Mbbrowser sẽ tiếp tục chạy.
        # Để đóng hoàn toàn trình duyệt, hãy gọi API /api/v1/browser/stop.
        driver.quit()


if __name__ == "__main__":
    start_browser()

Chạy script:

bash
python start_selenium.py

Kết Quả Dự Kiến

⏳ Đang khởi động môi trường vân tay Mbbrowser...
✅ Môi trường đã khởi động. Địa chỉ debug từ xa: 127.0.0.1:9222
🎉 Tiếp quản Selenium thành công!
📄 Tiêu đề trang hiện tại: MBBrowser Anti-association Browser - Multi-Account Solution
✅ Hoàn thành thực thi script!

Phân Tích Từng Dòng

1. Gọi ApiServer để Khởi Động Môi Trường

python
response = requests.post(
    f"{API_URL}/api/v1/browser/start",
    json={"Session_ID": SESSION_ID}
)
  • Bước này nói với Mbbrowser: "Giúp tôi mở môi trường vân tay với Session_ID XXX."
  • Sau khi nhận được yêu cầu, ApiServer sẽ khởi động phiên bản Chrome tương ứng và mở cổng debug từ xa.

2. Trích xuất debuggerAddress

python
debugger_address = data["data"]["http"]  # ví dụ: 127.0.0.1:9222
  • Thông tin trong trường httpĐịa chỉ Cổng Debug Từ Xa của Chrome (thường là 127.0.0.1:PORT).
  • Mỗi môi trường Mbbrowser có một số cổng duy nhất được Mbbrowser tự động chỉ định, cho phép chạy đồng thời mà không bị xung đột.

3. Thiết lập debuggerAddress để Tiếp Quản (Bước Quan Trọng!)

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

Đây là sự khác biệt cơ bản giữa tự động hóa Mbbrowser Selenium và Selenium thông thường:

Hành độngSelenium thông thườngMbbrowser Selenium
Tạo DriverKhởi động một cửa sổ Chrome mới, trống rỗngKết nối và tiếp quản một trình duyệt Mbbrowser hiện có
Vân tayKhông có; trạng thái trần trụiĐầy đủ vân tay (UA, Canvas, WebGL, IP đều có sẵn)
Trạng thái CookieTrống; yêu cầu đăng nhập lạiGiữ nguyên trạng thái đăng nhập trước đó (nếu đã đăng nhập)

4. Xử lý Sau Thực Thi

python
driver.quit()  # Ngắt kết nối Selenium (Môi trường Mbbrowser vẫn tiếp tục chạy)

NOTE

driver.quit() chỉ ngắt kết nối đường dẫn điều khiển của Selenium khỏi trình duyệt—nó không đóng cửa sổ Mbbrowser.

Để đóng trình duyệt hoàn toàn, hãy sử dụng:

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

Xử Lý Sự Cố

❓ Lỗi: Cannot connect to the Service

Lý do: Phiên bản chromedriver.exe không khớp với nhân (kernel) của Mbbrowser.

Giải pháp:

  1. Sử dụng chromedriver.exe đi kèm trong thư mục Mbbrowser và chỉ định đường dẫn của nó trong Service.
  2. Ngoài ra, xóa cấu hình DRIVER_PATH (đặt thành None) và để Selenium Manager tự xử lý.

❓ Lỗi: ConnectionError: Cannot connect to ApiServer

Lý do: ApiServer không chạy, hoặc cổng bị chiếm dụng.

Giải pháp:

  1. Xác nhận rằng cửa sổ terminal ApiServer vẫn đang chạy.
  2. Xác nhận cổng trong API_URL khớp với tham số --port.
  3. Kiểm tra xem tường lửa có đang chặn cổng 8186 không.

❓ Lỗi: code != 0: Khởi động môi trường thất bại

Lý do: Session_ID không chính xác, hoặc môi trường đã đang chạy.

Giải pháp:

  1. Xác nhận trong Mbbrowser rằng bạn đã sao chép đúng Session_ID.
  2. Nếu môi trường đã đang chạy, hãy gọi giao diện dừng trước khi khởi động lại.

❓ Trình duyệt mở ra, nhưng không ở trạng thái đăng nhập

Lý do: Đây là lần đầu tiên môi trường được mở; bạn chưa đăng nhập, vì vậy Cookies trống.

Giải pháp: Đây là điều bình thường. Tiếp theo, hãy đọc Tham khảo API cốt lõi để tìm hiểu cách chèn Cookies hoặc tự động hóa đăng nhập.


TIP

Script đã chạy? Chương tiếp theo Tham khảo API cốt lõi sẽ dạy bạn cách thực hiện các thao tác phức tạp hơn với Selenium: định vị phần tử, nhập liệu, nhấp chuột, chờ đợi và chụp màn hình... mọi thứ đều ở đó!