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