Các chủ đề phổ biến: Multilogin X, Multilogin 6,
Ví dụ về tự động hóa Puppeteer
Bảng tóm tắt
Puppeteer là thư viện Node.js do Google phát triển, cung cấp API cấp cao để kiểm soát Chromium thông qua Giao thức DevTools. Bạn có thể sử dụng Puppeteer để tự động hóa các tác vụ trong hồ sơ trình duyệt Mimic trong Multilogin . Trong bài viết này, chúng tôi sẽ chỉ cho bạn cách bắt đầu bằng một ví dụ.
Bạn chỉ có thể tự động hóa các cấu hình trình duyệt Mimic bằng Puppeteer . Stealthfox , dựa trên Mozilla Firefox, không được hỗ trợ.
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/");
Chạy tập lệnh
- Đảm bảo rằng agent được kết nối, vì nó giúp khởi chạy hồ sơ
- Đảm bảo Puppeteer tương thích với phiên bản lõi Mimic hiện tại – hãy kiểm tra ghi chú phát hành choPuppeteer và Mimic
- Chạy tệp
.js
với mã tự động hóa của bạn
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();