Skip to content

Nstbrowser SDK для Node.js

A Node.js SDK для взаимодействия с Nstbrowser API v2

Примечание: Эта документация относится к API v2, которая является рекомендуемой версией с полным функционалом v1 плюс дополнительные функции. Для документации v1, пожалуйста, обратитесь к README-v1.md. Новым пользователям рекомендуется использовать v2 для более стабильного и стандартизированного опыта.

Обзор

Этот SDK реализует Nstbrowser API v2, предоставляя полный набор инструментов для управления профилями браузера, управления экземплярами браузера, управления локальными данными браузера и использования Chrome DevTools Protocol (CDP) для автоматизации браузера.

SDK позволяет вам:

  • Создавать и управлять профилями браузера с подробными конфигурациями отпечатков
  • Запускать и останавливать экземпляры браузера по отдельности или пакетно
  • Настраивать и управлять прокси для профилей
  • Управлять тегами профилей для лучшей организации
  • Очищать кэш и куки браузера
  • Подключаться к браузерам с помощью Chrome DevTools Protocol (CDP)
  • Автоматизировать действия браузера через интеграцию CDP с Puppeteer

Установка

Используя npm:

bash
$ npm install nstbrowser-sdk-node
$ npm install nstbrowser-sdk-node

Используя pnpm:

bash
$ pnpm install nstbrowser-sdk-node
$ pnpm install nstbrowser-sdk-node

Используя yarn:

bash
$ yarn add nstbrowser-sdk-node
$ yarn add nstbrowser-sdk-node

Начало работы

Для использования SDK вам нужен API ключ от Nstbrowser:

javascript
import { NstBrowserV2 } from 'nstbrowser-sdk-node';

// Инициализация клиента с вашим API ключом
const client = new NstBrowserV2('your_api_key', {
  timeout: 60000,
  apiAddress: 'http://localhost:8848/api/v2'
});

// Теперь вы можете использовать различные сервисы
const profileId = 'your_profile_id';

// Запуск экземпляра браузера
const startResponse = await client.browsers().startBrowser({ profileId });
console.log('Браузер запущен:', startResponse);

// Остановка экземпляра браузера
const stopResponse = await client.browsers().stopBrowser({ profileId });
console.log('Браузер остановлен:', stopResponse);
import { NstBrowserV2 } from 'nstbrowser-sdk-node';

// Инициализация клиента с вашим API ключом
const client = new NstBrowserV2('your_api_key', {
  timeout: 60000,
  apiAddress: 'http://localhost:8848/api/v2'
});

// Теперь вы можете использовать различные сервисы
const profileId = 'your_profile_id';

// Запуск экземпляра браузера
const startResponse = await client.browsers().startBrowser({ profileId });
console.log('Браузер запущен:', startResponse);

// Остановка экземпляра браузера
const stopResponse = await client.browsers().stopBrowser({ profileId });
console.log('Браузер остановлен:', stopResponse);

Интеграция CDP с Puppeteer

Одной из самых мощных функций SDK является его бесшовная интеграция с Puppeteer для автоматизации браузера:

javascript
import { NstBrowserV2 } from 'nstbrowser-sdk-node';
import puppeteer from 'puppeteer-core';

async function automateWithPuppeteer() {
  const client = new NstBrowserV2('your_api_key');
  
  // Подключение к браузеру с помощью CDP
  const cdpResponse = await client.cdpEndpoints().connectBrowser({
    profileId: 'your_profile_id',
    config: {
      headless: false,
      autoClose: false
    }
  });

  // Подключение Puppeteer к экземпляру браузера
  const browser = await puppeteer.connect({
    browserWSEndpoint: cdpResponse.data.webSocketDebuggerUrl,
    defaultViewport: null
  });

  // Использование Puppeteer для автоматизации
  const page = await browser.newPage();
  await page.goto('https://example.com');
  
  // ... выполнение других действий
}
import { NstBrowserV2 } from 'nstbrowser-sdk-node';
import puppeteer from 'puppeteer-core';

async function automateWithPuppeteer() {
  const client = new NstBrowserV2('your_api_key');
  
  // Подключение к браузеру с помощью CDP
  const cdpResponse = await client.cdpEndpoints().connectBrowser({
    profileId: 'your_profile_id',
    config: {
      headless: false,
      autoClose: false
    }
  });

  // Подключение Puppeteer к экземпляру браузера
  const browser = await puppeteer.connect({
    browserWSEndpoint: cdpResponse.data.webSocketDebuggerUrl,
    defaultViewport: null
  });

  // Использование Puppeteer для автоматизации
  const page = await browser.newPage();
  await page.goto('https://example.com');
  
  // ... выполнение других действий
}

Примеры

SDK поставляется с полным набором примеров в директории /examples/v2. Для запуска примеров:

  1. Перейдите в директорию с примерами и установите зависимости:
bash
cd examples/v2
npm install
cd examples/v2
npm install
  1. Создайте файл .env в директории examples/v2 и добавьте ваш API ключ:
bash
echo "nstbrowser_api_key=your-api-key" > .env
echo "nstbrowser_api_key=your-api-key" > .env
  1. Запустите любой пример:
bash
node browsers/startBrowser.js
node browsers/startBrowser.js

Доступные примеры организованы по сервисам:

Примеры браузера

  • browsers/getBrowserDebugger.js: Получение информации отладчика браузера для автоматизации
  • browsers/getBrowserPages.js: Получение информации о страницах браузера
  • browsers/getBrowsers.js: Получение списка активных браузеров с информацией о состоянии
  • browsers/startBrowser.js: Запуск браузера для определенного профиля
  • browsers/startBrowsers.js: Запуск нескольких браузеров пакетно
  • browsers/startOnceBrowser.js: Запуск одноразового браузера с пользовательской конфигурацией
  • browsers/stopBrowser.js: Остановка определенного экземпляра браузера
  • browsers/stopBrowsers.js: Остановка нескольких экземпляров браузера пакетно

Примеры профиля

  • profiles/batchClearProfileTags.js: Очистка тегов для нескольких профилей пакетно
  • profiles/batchCreateProfileTags.js: Создание тегов для нескольких профилей пакетно
  • profiles/batchResetProfileProxy.js: Сброс прокси для нескольких профилей пакетно
  • profiles/batchUpdateProfileTags.js: Обновление тегов для нескольких профилей пакетно
  • profiles/batchUpdateProxy.js: Обновление прокси для нескольких профилей пакетно
  • profiles/clearProfileTags.js: Очистка всех тегов из определенного профиля
  • profiles/createProfile.js: Создание нового профиля с подробной конфигурацией
  • profiles/createProfileTags.js: Создание новых тегов для определенного профиля
  • profiles/deleteProfile.js: Удаление определенного профиля
  • profiles/deleteProfiles.js: Удаление нескольких профилей пакетно
  • profiles/getProfileTags.js: Получение всех тегов, связанных с профилями
  • profiles/getProfiles.js: Получение профилей с опциями фильтрации
  • profiles/resetProfileProxy.js: Сброс конфигурации прокси для определенного профиля
  • profiles/updateProfileProxy.js: Обновление конфигурации прокси для определенного профиля
  • profiles/updateProfileTags.js: Обновление тегов для определенного профиля
  • profiles/getAllProfileGroups.js: Получение всех групп профилей
  • profiles/changeProfileGroup.js: Изменение группы профиля
  • profiles/batchChangeProfileGroup.js: Пакетное изменение групп профилей

Примеры локальных данных

  • locals/clearProfileCache.js: Очистка кэша браузера для определенного профиля
  • locals/clearProfileCookies.js: Очистка куки браузера для определенного профиля

Примеры конечных точек CDP

  • cdpEndpoints/connectBrowser.js: Подключение к браузеру с помощью CDP и автоматизация с Puppeteer
  • cdpEndpoints/connectOnceBrowser.js: Подключение к одноразовому браузеру с CDP и автоматизация с Puppeteer

Поддержка

Для получения поддержки, пожалуйста, свяжитесь с нами через Discord. Для более подробной документации, посетите официальную документацию Nstbrowser: Nstbrowser API Documentation.