Перейти к основному содержимому

Пример автоматизации с Puppeteer

Puppeteer — это мощная библиотека Node.js, разработанная Google, которая предоставляет высокоуровневый API для управления браузерами Chromium через протокол DevTools. В сочетании с Indigo Puppeteer позволяет легко автоматизировать профили браузера Mimic, выполняя задачи, такие как веб-скрейпинг, тестирование или автоматизированное взаимодействие с веб-сайтами с использованием настроенных отпечатков браузера.

Это руководство поможет вам настроить Puppeteer для автоматизации профилей Mimic, включая предварительные требования, этапы установки и полный пример скрипта. В результате вы получите рабочую систему автоматизации для взаимодействия с любым веб-сайтом с использованием профилей Mimic от Indigo.


Предварительные требования

Перед началом убедитесь, что у вас есть следующее:

  • Node.js и npm: Скачайте и установите Node.js с официального сайта.
  • Аккаунт Indigo: Действующий аккаунт Indigo X с доступом к профилям браузера Mimic.
  • ID папки и профиля: Получите их в Indigo с помощью DevTools или Postman.
  • Подключение агента: Убедитесь, что агент Indigo запущен для возможности запуска профилей.
  • Совместимость Puppeteer: Проверьте, что версия Puppeteer совместима с текущей версией ядра Mimic (см. заметки о выпуске Indigo).
Примечание

Профили Mimic (на базе Chromium) поддерживаются Puppeteer. Профили Stealthfox (на базе Firefox) не совместимы.


Настройка среды

Следуйте этим шагам для подготовки среды разработки:

1. Проверка установки Node.js

Убедитесь, что Node.js и npm установлены, выполнив:

node -v
npm -v

Если они не установлены, скачайте и установите Node.js с nodejs.org.

2. Создание директории проекта

Создайте новый проект Node.js:

mkdir puppeteer-indigo
cd puppeteer-indigo
npm init -y

Это создаст файл package.json в директории вашего проекта.

3. Установка зависимостей

Установите Puppeteer, Axios и библиотеки MD5:

npm install puppeteer axios md5
  • Puppeteer: Управляет браузером.
  • Axios: Обрабатывает HTTP-запросы к API Indigo.
  • MD5: Используется для хеширования пароля (опционально, в зависимости от вашей настройки).

Написание скрипта автоматизации

Ниже приведен полный скрипт для аутентификации в Indigo, запуска профиля Mimic и автоматизации простой задачи (переход на веб-сайт и создание снимка экрана). Скрипт модульный и включает обработку ошибок.

Обзор скрипта

Скрипт выполняет следующие шаги:

  1. Аутентифицируется в API Indigo для получения токена.
  2. Запускает профиль Mimic с использованием Puppeteer.
  3. Открывает веб-страницу и делает снимок экрана.

Полный скрипт

const puppeteer = require('puppeteer');
const md5 = require('md5');
const axios = require('axios');

const HEADERS = {
'Content-Type': 'application/json',
'Accept': 'application/json',
};

// Замените на данные вашего аккаунта Indigo X
const acc_info = {
email: '[email protected]',
password: md5('your-password'), // Хеширование MD5 опционально
};

// Замените на ваши ID папки и профиля
const folder_id = 'your-folder-id';
const profile_id = 'your-profile-id';

async function get_token() {
const signIn_URL = 'https://api.indigobrowser.com/user/signin';
try {
const response = await axios.post(signIn_URL, acc_info, { headers: HEADERS });
return response.data.data.token;
} catch (error) {
console.error('Ошибка получения токена:', error.message);
console.error('Данные ответа:', error.response?.data);
return false;
}
}

async function start_browserProfile() {
const token = await get_token();
if (!token) {
console.error('Не удалось получить токен. Выход...');
return;
}

// Обновите заголовки с токеном
HEADERS.Authorization = `Bearer ${token}`;

// Запуск профиля Mimic
const profileLaunch_URL = `https://launcher.indigobrowser.com: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}`;

// Подключение Puppeteer к браузеру
const browser = await puppeteer.connect({
browserURL,
timeout: 10000,
});

// Открытие новой страницы и переход
const page = await browser.newPage();
await page.goto('https://indigobrowser.com/'); // Замените на целевой URL
await page.screenshot({ path: 'example.png' });

// Очистка
await page.close();
await browser.close();
} catch (error) {
console.error('Ошибка запуска профиля:', error.message);
console.error('Данные ответа:', error.response?.data);
}
}

start_browserProfile();

Шаги конфигурации

  1. Вставка данных аккаунта:

    • Замените [email protected] и your-password на учетные данные вашего аккаунта Indigo X.
    • Примечание: Хеширование пароля с помощью MD5 опционально, если не требуется вашей настройкой.
  2. Добавление ID папки и профиля:

    • Замените your-folder-id и your-profile-id на соответствующие значения из Indigo.
    • Найдите эти ID с помощью DevTools или Postman от Indigo.
  3. Настройка целевого URL:

    • Замените https://indigobrowser.com/ на веб-сайт, который вы хотите автоматизировать.

Запуск скрипта

Для выполнения автоматизации:

  1. Запустите агент Indigo: Убедитесь, что агент запущен для возможности запуска профилей.
  2. Проверьте совместимость: Убедитесь, что версия Puppeteer соответствует версии ядра Mimic (см. заметки о выпуске).
  3. Запустите скрипт:
    node script.js

Скрипт выполнит:

  • Аутентификацию в Indigo.
  • Запуск указанного профиля Mimic.
  • Переход на целевой URL и сохранение снимка экрана как example.png.
Совет

Если возникают проблемы с подключением, проверьте, активен ли агент Indigo и правильны ли folder_id и profile_id.