Skip to content

自動腳本管理器

Mbbrowser 自動腳本管理器說明書

Mbbrowser 自動腳本管理器是一款內置於候鳥客戶端中的專業瀏覽器自動化輔助工具。它支持 Selenium 與 Puppeteer 兩種主流的瀏覽器自動化框架,讓開發者能夠輕鬆實現網頁自動化操作。

一、基本原理

Mbbrowser 客戶端在啟動時會同時啟動一個後台 API 服務與一個 CDP(Chrome DevTools Protocol)服務。這些服務是實現自動化的核心。

  • API 服務:主要負責環境管理與啟動控制。
  • CDP 服務:負責與瀏覽器內核進行底層交互。

核心組件:

  1. mbservice.exe:Mbbrowser 後台服務,提供環境控制 API。
  2. cdp.exe:CDP 協議轉發與管理工具。
  3. chromedriver.exe:Selenium 所需的驅動程序(版本需與候鳥內核對應)。

二、使用 Selenium 自動化

Selenium 是一款強大的網頁測試與自動化框架。在 Mbbrowser 中使用 Selenium 的基本流程如下:

1. 啟動 API 服務

確保 Mbbrowser 客戶端已啟動。默認情況下,客戶端會啟動一個監聽在 127.0.0.1:55555 的 API 服務。

2. 調用啟動環境 API

在運行 Selenium 腳本之前,您需要先通過 HTTP API 啟動指定的瀏覽器環境。

API 請求示例:GET http://127.0.0.1:55555/api/v1/browser/start?id=環境ID

該請求將返回啟動結果,包括 CDP 服務的端口號。

3. 配置 Selenium WebDriver

您需要配置 Selenium 以連接到候鳥已啟動的 CDP 服務。

Python 代碼示例:

python
from selenium import webdriver
from selenium.webdriver.chrome.options import Options
import requests

# 1. 通過 API 啟動候鳥環境
browser_id = "your_browser_id"
resp = requests.get(f"http://127.0.0.1:55555/api/v1/browser/start?id={browser_id}")
data = resp.json()

if data.get("code") == 0:
    cdp_port = data["data"]["port"]
    
    # 2. 配置 Selenium 連接到已啟動的環境
    chrome_options = Options()
    chrome_options.add_experimental_option("debuggerAddress", f"127.0.0.1:{cdp_port}")
    
    # 這裡路徑應指向候鳥內置的 chromedriver.exe
    driver = webdriver.Chrome(executable_path="path/to/mbbrowser/chromedriver.exe", options=chrome_options)
    
    # 3. 開始自動化操作
    driver.get("https://www.google.com")
    print(driver.title)

三、使用 Puppeteer 自動化

Puppeteer 是基於 Node.js 開發的高級瀏覽器自動化庫,它通過 CDP 協議直接控制瀏覽器。

核心流程:

  1. 獲取 CDP Endpoint:同樣通過啟動 API 獲取環境的監聽端口。
  2. 連接到瀏覽器:使用 puppeteer.connect 方法連接。

JavaSript (Node.js) 代碼示例:

javascript
const puppeteer = require('puppeteer-core');
const axios = require('axios');

async function startAutomation() {
  // 1. 啟動環境
  const browserId = "your_browser_id";
  const resp = await axios.get(`http://127.0.0.1:55555/api/v1/browser/start?id=${browserId}`);
  
  if (resp.data.code === 0) {
    const cdpPort = resp.data.data.port;
    
    // 2. 連接 Puppeteer
    const browser = await puppeteer.connect({
      browserURL: `http://127.0.0.1:${cdpPort}`,
      defaultViewport: null
    });
    
    // 3. 操作頁面
    const page = await browser.newPage();
    await page.goto('https://www.mbbrowser.com');
    console.log(await page.title());
    
    // 注意:如果是共享模式,建議不要在此關閉 browser,應調用啟動 API 的關閉接口
  }
}

startAutomation();

四、自動腳本管理器介面功能

在 Mbbrowser 客戶端中,您可以通過「自動腳本管理器」介面下載、管理和更新各類自動化驅動。

1. 驅動下載中心

  • Chromedriver:根據候鳥內核版本,一鍵下載對應版本的驅動。
  • 邊緣輔助組件:如開發者工具插件等。

2. 腳本庫

腳本庫中提供了內置的範例腳本(JS/Python/Go),供用戶快速參考學習。

3. 運行狀態監控

實時顯示當前正在運行的 CDP 任務及其端口佔用情況,方便排查自動化過程中的連接問題。

五、常見問題與注意事項

  1. 端口衝突:確保 API 端口(默認 55555)未被其他程序佔用。
  2. 瀏覽器版本匹配:Selenium 自動化強烈依賴於 chromedriver.exe 與瀏覽器核心版本的匹配,請務必使用候鳥配套下載的版本。
  3. 無頭模式 (Headless):如果需要在服務器上以無頭模式運行,請在環境配置中開啟「無頭模式」選項,或在啟動 API 中傳入相關參數。
  4. 多線程併發:Mbbrowser 支持啟動多個環境進行併發自動化,但請注意系統資源(CPU/內存)的消耗情況。

開發建議

為了獲得更好的自動化體驗,建議優先使用 Puppeteer 框架,因為它與 Chrome DevTools Protocol 的集成更為緊密且高效。