Skip to content

Bắt đầu nhanh: Kết nối

Chương này sử dụng một script đơn giản để minh họa cách khởi động một môi trường Mbbrowser cụ thể và kiểm soát nó thông qua mã nguồn.

Script Thực Tế

Vui lòng tạo một tệp có tên start.js và sao chép mã sau vào đó:

javascript
const puppeteer = require('puppeteer-core');
const axios = require('axios'); // Đảm bảo bạn đã chạy: npm install axios

async function startProject() {
  // 1. Thiết lập thông tin cấu hình
  const API_URL = 'http://127.0.0.1:8186'; // Địa chỉ ApiServer
  const SESSION_ID = '373808cb37bd63f5f7d92415e736e85f'; // ID môi trường của bạn

  try {
    // 2. Gọi giao diện Mbbrowser để khởi động môi trường
    console.log('Đang khởi động môi trường Mbbrowser...');
    const response = await axios.post(`${API_URL}/api/v1/browser/start`, {
      Session_ID: SESSION_ID
    });

    if (response.data.code === 0) {
      // 3. Lấy địa chỉ kết nối WebSocket
      const wsEndpoint = response.data.data.ws;
      console.log('Khởi động môi trường thành công, đang kiểm soát...');

      // 4. Sử dụng Puppeteer để kết nối với môi trường này
      const browser = await puppeteer.connect({
        browserWSEndpoint: wsEndpoint,
        defaultViewport: null // Sử dụng kích thước cửa sổ mặc định của trình duyệt
      });

      // 5. Mở một trang mới và điều hướng
      const page = await browser.newPage();
      await page.goto('https://www.mbbrowser.com', { waitUntil: 'networkidle2' });

      console.log('Tiêu đề trang hiện tại:', await page.title());

      // 6. Ngắt kết nối sau khi vận hành (Môi trường vẫn tiếp tục chạy trừ khi bạn gọi giao diện dừng)
      await browser.disconnect();
      console.log('Hoàn thành thao tác tự động hóa!');
      
    } else {
      console.error('Khởi động môi trường thất bại:', response.data.message);
    }
  } catch (error) {
    console.error('Lỗi kết nối:', error.message);
  }
}

startProject();

Thông Tin Chuyên Sâu Về Các Khái Niệm Chính

  1. axios.post: Đầu tiên, gửi một yêu cầu đến ApiServer để mở môi trường. Nếu môi trường không chạy, Puppeteer sẽ không có gì để kết nối.
  2. wsEndpoint: Đây là "chìa khóa duy nhất" được trả về khi thành công. Puppeteer sử dụng địa chỉ này để đi vào bên trong trình duyệt.
  3. puppeteer.connect: Lưu ý rằng đây là connect (kết nối với trình duyệt hiện có) thay vì launch (khởi động trình duyệt mới). Đây là sự khác biệt cốt lõi trong tự động hóa trình duyệt vân tay.
  4. browser.disconnect: Khuyến nghị ngắt kết nối khi script của bạn kết thúc. Bằng cách này, ngay cả khi script kết thúc, cửa sổ trình duyệt thường vẫn còn trên màn hình, cho phép quan sát hoặc thực hiện các thao tác thủ công tiếp theo.

TIP

Đã thành thạo việc tiếp quản môi trường? Chương tiếp theo Tham khảo API cốt lõi sẽ dạy bạn cách làm cho trình duyệt thực hiện các lệnh phức tạp hơn.