Пример автоматизации Puppeteer
Используйте Puppeteer для автоматизации браузерного профиля Multilogin Mimic: запустите профиль с automation_type=puppeteer, получите порт автоматизации из ответа на запуск и подключите Puppeteer к этому локальному порту.
➡️ Оставьте десктопное приложение Multilogin запущенным → запустите браузерный профиль через API → получите data.port из ответа → подключите Puppeteer к http://127.0.0.1:<port>.
Puppeteer работает с браузерными профилями Mimic. Устаревшие профили Stealthfox не поддерживают Puppeteer.
Чтобы начать автоматизацию, сначала изучите эти материалы: «Начало работы со скриптами автоматизации».
В этом руководстве рассматривается автоматизация браузерных профилей. Для автоматизации нативных Android-приложений на облачных телефонах Multilogin используйте ADB или Appium.
Кто может использовать этот скрипт?
- 👨💻 Владельцы аккаунтов и участники
- 💰 Подписка Pro 10 и выше
Как работает подключение
-
Скрипт запускает браузерный профиль Multilogin с
automation_type=puppeteer -
Multilogin возвращает порт автоматизации в
data.port -
Скрипт формирует
http://127.0.0.1:<port> -
puppeteer.connect()подключается к уже запущенному профилю Multilogin. - После этого Puppeteer может открывать страницы и выполнять действия в браузере.
Начало работы
- Скачайте Node.js с официального сайта и установите его.
- Убедитесь, что Node.js и npm установлены правильно:
node -v
npm -v- Создайте каталог проекта, затем выполните эту команду для инициализации нового проекта Node.js и создания файла
package.json:
npm init -y- Установите Puppeteer для вашего проекта:
npm install puppeteer- Установите Axios и библиотеку MD5:
npm install axios
npm install md5- Вставьте свои значения в указанные ниже переменные скрипта:
- Замените
https://multilogin.comна нужный вам сайт в следующей строке:
await page.goto("https://multilogin.com/");Нужен ID профиля? Его можно скопировать прямо из интерфейса Multilogin. Подробнее: «Как копировать ID профиля в Multilogin».
Запуск скрипта
- Запустите приложение: без него профиль не запустится.
- Используйте версию Puppeteer, совместимую с версией Chromium, которую использует текущее ядро Mimic. Если после обновления ядра Puppeteer не удается подключиться, проверьте совместимость текущего ядра Mimic и версии Puppeteer, прежде чем изменять скрипт.
- Запустите файл
.jsс вашим кодом автоматизации.Убедитесь, что запускаете код в той же папке/проекте, что и файл
package.json.
Пример скрипта
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();Ожидаемый результат: Multilogin запускает выбранный браузерный профиль Mimic, Puppeteer подключается к возвращенному порту автоматизации, открывает целевую веб-страницу и сохраняет example.png в папке вашего проекта.
Решение проблем
Почему Puppeteer не может подключиться к профилю?
Проверьте, что:
- Десктопное приложение Multilogin запущено.
-
folder_idиprofile_idуказаны правильно. - Браузерный профиль использует Mimic.
-
Запрос на запуск профиля вернул действительный
data.port - Ваш Токен API действителен.
- Ваша версия Puppeteer совместима с текущим ядром Mimic.
Почему Puppeteer открывает другой браузер?
Убедитесь, что скрипт использует puppeteer.connect() с портом, который вернул Multilogin, а не запускает отдельный браузер Puppeteer.