Nstbrowser SDK para Node.js
Un SDK de Node.js para interactuar con la API v2 de Nstbrowser
Nota: Esta documentación es para la API v2, que es la versión recomendada con todas las funcionalidades de la v1 además de características adicionales. Para la documentación de la v1, consulte README-v1.md. Se recomienda a los nuevos usuarios que utilicen la v2 para una experiencia más estable y estandarizada.
Resumen
Este SDK implementa la API v2 de Nstbrowser, proporcionando un conjunto completo de herramientas para gestionar perfiles de navegador, controlar instancias de navegador, gestionar datos locales del navegador y utilizar el Protocolo Chrome DevTools (CDP) para la automatización del navegador.
El SDK le permite:
- Crear y gestionar perfiles de navegador con configuraciones detalladas de huellas digitales
- Iniciar y detener instancias de navegador individualmente o en lote
- Configurar y gestionar proxies para perfiles
- Gestionar etiquetas de perfil para una mejor organización
- Borrar la caché y las cookies del navegador
- Conectarse a navegadores utilizando el Protocolo Chrome DevTools (CDP)
- Automatizar acciones del navegador a través de la integración de CDP con Puppeteer
Instalación
Usando npm:
$ npm install nstbrowser-sdk-node
$ npm install nstbrowser-sdk-node
Usando pnpm:
$ pnpm install nstbrowser-sdk-node
$ pnpm install nstbrowser-sdk-node
Usando yarn:
$ yarn add nstbrowser-sdk-node
$ yarn add nstbrowser-sdk-node
Comenzando
Para usar el SDK, necesita una clave API de Nstbrowser:
import { NstBrowserV2 } from 'nstbrowser-sdk-node';
// Inicializa el cliente con su clave API
const client = new NstBrowserV2('your_api_key', {
timeout: 60000,
apiAddress: 'http://localhost:8848/api/v2'
});
// Ahora puede usar los diversos servicios
const profileId = 'your_profile_id';
// Iniciar una instancia del navegador
const startResponse = await client.browsers().startBrowser({ profileId });
console.log('Navegador iniciado:', startResponse);
// Detener la instancia del navegador
const stopResponse = await client.browsers().stopBrowser({ profileId });
console.log('Navegador detenido:', stopResponse);
import { NstBrowserV2 } from 'nstbrowser-sdk-node';
// Inicializa el cliente con su clave API
const client = new NstBrowserV2('your_api_key', {
timeout: 60000,
apiAddress: 'http://localhost:8848/api/v2'
});
// Ahora puede usar los diversos servicios
const profileId = 'your_profile_id';
// Iniciar una instancia del navegador
const startResponse = await client.browsers().startBrowser({ profileId });
console.log('Navegador iniciado:', startResponse);
// Detener la instancia del navegador
const stopResponse = await client.browsers().stopBrowser({ profileId });
console.log('Navegador detenido:', stopResponse);
Integración CDP con Puppeteer
Una de las características más potentes del SDK es su integración perfecta con Puppeteer para la automatización del navegador:
import { NstBrowserV2 } from 'nstbrowser-sdk-node';
import puppeteer from 'puppeteer-core';
async function automateWithPuppeteer() {
const client = new NstBrowserV2('your_api_key');
// Conectarse a un navegador usando CDP
const cdpResponse = await client.cdpEndpoints().connectBrowser({
profileId: 'your_profile_id',
config: {
headless: false,
autoClose: false
}
});
// Conectar Puppeteer a la instancia del navegador
const browser = await puppeteer.connect({
browserWSEndpoint: cdpResponse.data.webSocketDebuggerUrl,
defaultViewport: null
});
// Usar Puppeteer para la automatización
const page = await browser.newPage();
await page.goto('https://example.com');
// ... realizar otras acciones
}
import { NstBrowserV2 } from 'nstbrowser-sdk-node';
import puppeteer from 'puppeteer-core';
async function automateWithPuppeteer() {
const client = new NstBrowserV2('your_api_key');
// Conectarse a un navegador usando CDP
const cdpResponse = await client.cdpEndpoints().connectBrowser({
profileId: 'your_profile_id',
config: {
headless: false,
autoClose: false
}
});
// Conectar Puppeteer a la instancia del navegador
const browser = await puppeteer.connect({
browserWSEndpoint: cdpResponse.data.webSocketDebuggerUrl,
defaultViewport: null
});
// Usar Puppeteer para la automatización
const page = await browser.newPage();
await page.goto('https://example.com');
// ... realizar otras acciones
}
Ejemplos
El SDK viene con un conjunto completo de ejemplos en el directorio /examples/v2
. Para ejecutar los ejemplos:
- Navegue al directorio de ejemplos e instale las dependencias:
cd examples/v2
npm install
cd examples/v2
npm install
- Cree un archivo
.env
en el directorioexamples/v2
y agregue su clave API:
echo "nstbrowser_api_key=your-api-key" > .env
echo "nstbrowser_api_key=your-api-key" > .env
- Ejecute cualquier ejemplo:
node browsers/startBrowser.js
node browsers/startBrowser.js
Los ejemplos disponibles están organizados por servicio:
Ejemplos de Navegador
browsers/getBrowserDebugger.js
: Obtener información del depurador del navegador para la automatizaciónbrowsers/getBrowserPages.js
: Obtener información sobre las páginas del navegadorbrowsers/getBrowsers.js
: Obtener la lista de navegadores activos con información de estadobrowsers/startBrowser.js
: Iniciar un navegador para un perfil específicobrowsers/startBrowsers.js
: Iniciar varios navegadores en lotebrowsers/startOnceBrowser.js
: Iniciar un navegador único con configuración personalizadabrowsers/stopBrowser.js
: Detener una instancia de navegador específicabrowsers/stopBrowsers.js
: Detener varias instancias de navegador en lote
Ejemplos de Perfil
profiles/batchClearProfileTags.js
: Borrar etiquetas para múltiples perfiles en loteprofiles/batchCreateProfileTags.js
: Crear etiquetas para múltiples perfiles en loteprofiles/batchResetProfileProxy.js
: Restablecer proxies para múltiples perfiles en loteprofiles/batchUpdateProfileTags.js
: Actualizar etiquetas para múltiples perfiles en loteprofiles/batchUpdateProxy.js
: Actualizar proxies para múltiples perfiles en loteprofiles/clearProfileTags.js
: Borrar todas las etiquetas de un perfil específicoprofiles/createProfile.js
: Crear un nuevo perfil con configuración detalladaprofiles/createProfileTags.js
: Crear nuevas etiquetas para un perfil específicoprofiles/deleteProfile.js
: Eliminar un perfil específicoprofiles/deleteProfiles.js
: Eliminar múltiples perfiles en loteprofiles/getProfileTags.js
: Obtener todas las etiquetas asociadas con los perfilesprofiles/getProfiles.js
: Obtener perfiles con opciones de filtradoprofiles/resetProfileProxy.js
: Restablecer la configuración del proxy para un perfil específicoprofiles/updateProfileProxy.js
: Actualizar la configuración del proxy para un perfil específicoprofiles/updateProfileTags.js
: Actualizar etiquetas para un perfil específicoprofiles/getAllProfileGroups.js
: Obtener todos los grupos de perfilesprofiles/changeProfileGroup.js
: Cambiar un grupo de perfilesprofiles/batchChangeProfileGroup.js
: Cambios por lotes a grupos de perfiles
Ejemplos de Datos Locales
locals/clearProfileCache.js
: Borrar la caché del navegador para un perfil específicolocals/clearProfileCookies.js
: Borrar las cookies del navegador para un perfil específico
Ejemplos de Punto Final CDP
cdpEndpoints/connectBrowser.js
: Conectarse a un navegador usando CDP y automatizar con PuppeteercdpEndpoints/connectOnceBrowser.js
: Conectarse a un navegador único con CDP y automatizar con Puppeteer
Soporte
Para soporte, no dude en contactarnos a través de Discord. Para una documentación más detallada, visite la documentación oficial de Nstbrowser: Documentación de la API de Nstbrowser.