Ví dụ về tự động hóa Puppeteer
Sử dụng Puppeteer để tự động hóa hồ sơ trình duyệt Mimic của Multilogin bằng cách khởi động hồ sơ với automation_type=puppeteer, lấy cổng tự động hóa từ phản hồi khởi động và kết nối Puppeteer với cổng cục bộ đó.
➡️ Giữ ứng dụng máy tính để bàn Multilogin đang chạy → khởi động hồ sơ trình duyệt qua API → lấy data.port từ phản hồi → kết nối Puppeteer với http://127.0.0.1:<port>.
Puppeteer hoạt động với hồ sơ trình duyệt Mimic. Hồ sơ Stealthfox cũ không hỗ trợ Puppeteer.
Để bắt đầu tự động hóa, trước tiên hãy xem các tài nguyên này: Bắt đầu với tập lệnh tự động hóa.
Hướng dẫn này áp dụng cho tự động hóa hồ sơ trình duyệt. Để tự động hóa ứng dụng Android gốc trên điện thoại đám mây Multilogin, hãy sử dụng ADB hoặc Appium.
Ai có thể sử dụng script này?
- 👨💻 Chủ tài khoản và thành viên nhóm
- 💰 Gói Pro 10 trở lên
Cách kết nối hoạt động
-
Script khởi động hồ sơ trình duyệt Multilogin với
automation_type=puppeteer -
Multilogin trả về cổng tự động hóa trong
data.port -
Script tạo
http://127.0.0.1:<port> -
puppeteer.connect()kết nối với hồ sơ Multilogin đang chạy - Sau đó, Puppeteer có thể mở trang và thực hiện các thao tác trong trình duyệt
Trước khi bạn bắt đầu
- Tải xuống Node.js từ trang web chính thức và cài đặt nó
- Đảm bảo Node.js và npm (Node Package Manager) được cài đặt đúng cách:
node -v
npm -v- Tạo thư mục dự án, sau đó chạy lệnh này để khởi tạo dự án Node.js mới và tạo tệp
package.json:
npm init -y- Cài đặt Puppeteer làm phần phụ thuộc cho dự án của bạn:
npm install puppeteer- Cài đặt Axios và thư viện MD5:
npm install axios
npm install md5- Chèn các giá trị của bạn vào các biến bên dưới trong tập lệnh:
- Thay thế
https://multilogin.com/bằng trang web bạn cần trong dòng sau:
await page.goto("https://multilogin.com/");Cần profile ID? Bạn có thể sao chép trực tiếp từ giao diện Multilogin. Tìm hiểu cách thực hiện: Cách sao chép ID hồ sơ trong Multilogin
Chạy tập lệnh
- Đảm bảo ứng dụng được khởi chạy vì nó giúp khởi chạy hồ sơ dễ dàng
- Sử dụng phiên bản Puppeteer tương thích với phiên bản Chromium mà lõi Mimic hiện tại sử dụng. Nếu Puppeteer không thể kết nối sau khi lõi được cập nhật, hãy kiểm tra khả năng tương thích giữa lõi Mimic hiện tại và Puppeteer trước khi thay đổi script.
- Chạy tệp
.jsvới mã tự động hóa của bạnĐảm bảo chạy mã tự động hóa trong cùng thư mục/dự án với tệp
package.json.
Ví dụ về kịch bản
const puppeteer = require('puppeteer');
const md5 = require('md5');
const axios = require('axios');
const HEADERS = {
"Content-Type": "application/json",
"Accept": "application/json",
};
const acc_info = {
// Insert your account information in both variables below
"email": "",
"password": md5("")
};
async function get_token() {
const signIn_URL = "https://api.multilogin.com/user/signin";
try {
const response = await axios.post(signIn_URL, acc_info, {
headers: HEADERS
});
return response.data.data.token;
} catch (error) {
console.log(error.message);
console.log("Response data:", error.response.data);
return false;
}
};
// Insert the Folder ID and the Profile ID below
const folder_id = "";
const profile_id = "";
async function start_browserProfile() {
const token = await get_token();
if (!token) return;
// Update HEADERS with bearer token retrived from the get_token function
HEADERS.Authorization = 'Bearer ' + token;
// Launch a profile defining "Puppeteer" as automation type
const profileLaunch_URL = `https://launcher.mlx.yt:45001/api/v2/profile/f/${folder_id}/p/${profile_id}/start?automation_type=puppeteer&headless_mode=false`;
try {
const response = await axios.get(profileLaunch_URL, {
headers: HEADERS
});
const browserURL = `http://127.0.0.1:${response.data.data.port}`;
// if you prefer to connect with browserWSEndpoint, try to get the webSocketDebuggerUrl by following request
// const {data: {webSocketDebuggerUrl}} = await axios.get(`${browserURL}/json/version`)
const browser = await puppeteer.connect({
browserURL: browserURL,
timeout: 10000
});
const page = await browser.newPage();
await page.goto("https://multilogin.com/");
await page.screenshot({
path: "example.png"
})
await page.close();
} catch (error) {
console.log("Error:", error.message);
if (error.response) {
console.log("Response data:", error.response.data);
}
}
};
start_browserProfile();Kết quả mong đợi: Multilogin khởi động hồ sơ trình duyệt Mimic đã chọn, Puppeteer kết nối với cổng tự động hóa được trả về, mở trang web đích và lưu example.png vào thư mục dự án của bạn.
Khắc phục sự cố
Tại sao Puppeteer không thể kết nối với hồ sơ?
Kiểm tra rằng:
- Ứng dụng máy tính để bàn Multilogin đang chạy
-
folder_idvàprofile_idchính xác - Hồ sơ trình duyệt sử dụng Mimic
-
Yêu cầu khởi động hồ sơ đã trả về
data.porthợp lệ - API token của bạn hợp lệ
- Phiên bản Puppeteer của bạn tương thích với lõi Mimic hiện tại
Tại sao Puppeteer mở một trình duyệt khác?
Đảm bảo script sử dụng puppeteer.connect() với cổng do Multilogin trả về thay vì khởi động một trình duyệt Puppeteer riêng.