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:
$ npm install nstbrowser-sdk-node$ npm install nstbrowser-sdk-nodeИспользуя pnpm:
$ pnpm install nstbrowser-sdk-node$ pnpm install nstbrowser-sdk-nodeИспользуя yarn:
$ yarn add nstbrowser-sdk-node$ yarn add nstbrowser-sdk-nodeНачало работы
Для использования SDK вам нужен API ключ от Nstbrowser:
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 для автоматизации браузера:
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. Для запуска примеров:
- Перейдите в директорию с примерами и установите зависимости:
cd examples/v2
npm installcd examples/v2
npm install- Создайте файл
.envв директорииexamples/v2и добавьте ваш API ключ:
echo "nstbrowser_api_key=your-api-key" > .envecho "nstbrowser_api_key=your-api-key" > .env- Запустите любой пример:
node browsers/startBrowser.jsnode 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 и автоматизация с PuppeteercdpEndpoints/connectOnceBrowser.js: Подключение к одноразовому браузеру с CDP и автоматизация с Puppeteer
Поддержка
Для получения поддержки, пожалуйста, свяжитесь с нами через Discord. Для более подробной документации, посетите официальную документацию Nstbrowser: Nstbrowser API Documentation.