快速上手:接管候鸟环境
本章将通过一个简单的脚本,演示如何启动一个指定的候鸟环境,并用代码接管它。
实战脚本
请创建一个名为 start.js 的文件,并将以下代码复制进去:
javascript
const puppeteer = require('puppeteer-core');
const axios = require('axios'); // 请确保运行 npm install axios
async function startProject() {
// 1. 设置配置信息
const API_URL = 'http://127.0.0.1:8186'; // ApiServer 地址
const SESSION_ID = '373808cb37bd63f5f7d92415e736e85f'; // 您的环境 ID
try {
// 2. 调用候鸟接口启动环境
console.log('正在开启候鸟环境...');
const response = await axios.post(`${API_URL}/api/v1/browser/start`, {
Session_ID: SESSION_ID
});
if (response.data.code === 0) {
// 3. 获取 WebSocket 连接地址
const wsEndpoint = response.data.data.ws;
console.log('环境开启成功,正在接管控制...');
// 4. 使用 Puppeteer 连接到该环境
const browser = await puppeteer.connect({
browserWSEndpoint: wsEndpoint,
defaultViewport: null // 使用浏览器默认窗口大小
});
// 5. 新开一个页面并导航
const page = await browser.newPage();
await page.goto('https://www.mbbrowser.com', { waitUntil: 'networkidle2' });
console.log('当前页面标题:', await page.title());
// 6. 操作完成后断开连接(环境会保持运行,除非你调用 stop 接口)
await browser.disconnect();
console.log('自动化操作完成!');
} else {
console.error('环境启动失败:', response.data.message);
}
} catch (error) {
console.error('连接出错:', error.message);
}
}
startProject();关键点解析
axios.post:先向 ApiServer 发送请求开启环境。环境不开启,Puppeteer 就没处连接。wsEndpoint:这是开启成功后返回的“唯一钥匙”,Puppeteer 凭此地址进入浏览器内部。puppeteer.connect:注意是connect(连接已有浏览器),而不是launch(启动新浏览器)。这就是指纹浏览器自动化的核心区别。browser.disconnect:当你的脚本写完,建议断开连接。这样即使脚本结束了,浏览器窗口通常还会留在桌面上,方便你观察或后续手动操作。
TIP
学会了接管环境?下一章 核心 API 通俗详解 教你如何让浏览器执行更复杂的命令。
