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:
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:
python start_selenium.pyKế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
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
debugger_address = data["data"]["http"] # ví dụ: 127.0.0.1:9222- Thông tin trong trường
httplà Đị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!)
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 động | Selenium thông thường | Mbbrowser Selenium |
|---|---|---|
| Tạo Driver | Khởi động một cửa sổ Chrome mới, trống rỗng | Kết nối và tiếp quản một trình duyệt Mbbrowser hiện có |
| Vân tay | Khô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 Cookie | Trống; yêu cầu đăng nhập lại | Giữ nguyên trạng thái đăng nhập trước đó (nếu đã đăng nhập) |
4. Xử lý Sau Thực Thi
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:
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:
- Sử dụng
chromedriver.exeđi kèm trong thư mục Mbbrowser và chỉ định đường dẫn của nó trongService. - Ngoài ra, xóa cấu hình
DRIVER_PATH(đặt thànhNone) 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:
- Xác nhận rằng cửa sổ terminal ApiServer vẫn đang chạy.
- Xác nhận cổng trong
API_URLkhớp với tham số--port. - 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:
- Xác nhận trong Mbbrowser rằng bạn đã sao chép đúng Session_ID.
- 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 ở đó!
