Браузерная автоматизация с Puppeteer в Multilogin 6
Puppeteer — это библиотека для Node.js, которая автоматизирует процессы с использованием браузера на базе Chromium. Она работает с протоколом Chrome DevTools, что позволяет создавать веб-краулеры и взаимодействовать с веб-сайтами, используя браузер Mimic с маскированными отпечатками пальцев.
Шаг 1: задайте порт приложения
Define ports MLA RU
Вот как задать порт:
- Откройте Multilogin.
- Перейдите во вкладку «Мой аккаунт» и нажмите «Открыть директорию логов».
- В открывшейся папке
/.multiloginapp.com/logs
, перейдите на один уровень вверх в папку/.multiloginapp.com
. - Откройте файл
app.properties
с помощью любого текстового редактора. - Добавьте следующую строку в файл:
multiloginapp.port=35000
. - Сохраните файл
app.properties
.
Номер порта должен находиться в диапазоне от 10000 до 49151.
Вы также можете найти файл app.properties
в папке .multilogin.com
:
- Windows:
C:\Users\%username%\.multiloginapp.com
. - Linux:
/home/%username%/.multiloginapp.com
. - macOS:
/Users/%username%/.multiloginapp.com
.
Папка может быть скрытой, в зависимости от настроек вашей ОС. Для отображения этой папки на устройствах Mac можно использовать следующие комбинации клавиш:
-
Cmd + Shift + H
— для отображения папки текущего пользователя. -
Cmd + Shift + .
(точка) — для отображения скрытых папок и файлов.

Шаг 2: настройте Puppeteer
Установите Node.js и npm
Прежде чем начать, убедитесь, что на вашем компьютере установлены Node.js и менеджер пакетов npm. Если они не установлены, загрузите их с официального сайта Node.js.
Чтобы проверить версии Node.js и npm, откройте терминал и выполните команду:node -v || node -v && npm -v
- Последние версии Node.js уже включают npm по умолчанию.
- Вы также можете использовать yarn для управления пакетами Node.js.
Создайте проект npm
Создайте новый проект npm в текущей директории: npm init -y
.
Эта команда создаст конфигурационный файл package.json
, а параметр -y
позволит пропустить вопросы, связанные с настройкой проекта, и использовать дефолтные значения.
Установите Puppeteer-Core
Установите Puppeteer-core в директории проекта: npm install [email protected] --save
.
Для каждой версии Chromium имеется своя версия Puppeteer-core. Вы можете следить за обновлениями браузерного ядра Mimic в нашем Журнале изменений. Совместимость версий Puppeteer-core и Chromium можно проверить в Puppeteer документации.
Создайте свой скрипт
Создайте файл .js
с вашим скриптом автоматизации. Используйте следующий код в качестве примера:
const puppeteer = require('puppeteer-core');
const http = require('http');
async function startProfile(){
//Replace profileId value with existing browser profile ID.
let profileId = 'xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx';
let mlaPort = 35000;
/*Send GET request to start the browser profile by profileId.
Returns web socket as response which should be passed to puppeteer.connect*/
http.get(`http://127.0.0.1:${mlaPort}/api/v1/profile/start?automation=true&puppeteer=true&profileId=${profileId}`, (resp) => {
let data = '';
let ws = '';
//Receive response data by chunks
resp.on('data', (chunk) => {
data += chunk;
});
/*The whole response data has been received. Handling JSON Parse errors,
verifying if ws is an object and contains the 'value' parameter.*/
resp.on('end', () => {
let ws;
try {
ws = JSON.parse(data);
} catch(err) {
console.log(err);
}
if (typeof ws === 'object' && ws.hasOwnProperty('value')) {
console.log(`Browser websocket endpoint: ${ws.value}`);
run(ws.value);
}
});
}).on("error", (err) => {
console.log(err.message);
});
}
async function run(ws) {
try{
//Connecting Puppeteer with Mimic instance and performing simple automation.
const browser = await puppeteer.connect({browserWSEndpoint: ws, defaultViewport:null});
const page = await browser.newPage();
await page.goto('https://multilogin.com');
await page.screenshot({ path: `/home/${process.env.USER}/Desktop/multiloginScreenshot.png` });
await browser.close();
} catch(err){
console.log(err.message);
}
}
startProfile();
Запустите файл
Запустите файл .js
через терминал для запуска вашего скрипта автоматизации: nodejs example.js
.