Skip to content

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:

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

Usando pnpm:

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

Usando yarn:

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

Comenzando

Para usar el SDK, necesita una clave API de Nstbrowser:

javascript
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:

javascript
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:

  1. Navegue al directorio de ejemplos e instale las dependencias:
bash
cd examples/v2
npm install
cd examples/v2
npm install
  1. Cree un archivo .env en el directorio examples/v2 y agregue su clave API:
bash
echo "nstbrowser_api_key=your-api-key" > .env
echo "nstbrowser_api_key=your-api-key" > .env
  1. Ejecute cualquier ejemplo:
bash
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ón
  • browsers/getBrowserPages.js: Obtener información sobre las páginas del navegador
  • browsers/getBrowsers.js: Obtener la lista de navegadores activos con información de estado
  • browsers/startBrowser.js: Iniciar un navegador para un perfil específico
  • browsers/startBrowsers.js: Iniciar varios navegadores en lote
  • browsers/startOnceBrowser.js: Iniciar un navegador único con configuración personalizada
  • browsers/stopBrowser.js: Detener una instancia de navegador específica
  • browsers/stopBrowsers.js: Detener varias instancias de navegador en lote

Ejemplos de Perfil

  • profiles/batchClearProfileTags.js: Borrar etiquetas para múltiples perfiles en lote
  • profiles/batchCreateProfileTags.js: Crear etiquetas para múltiples perfiles en lote
  • profiles/batchResetProfileProxy.js: Restablecer proxies para múltiples perfiles en lote
  • profiles/batchUpdateProfileTags.js: Actualizar etiquetas para múltiples perfiles en lote
  • profiles/batchUpdateProxy.js: Actualizar proxies para múltiples perfiles en lote
  • profiles/clearProfileTags.js: Borrar todas las etiquetas de un perfil específico
  • profiles/createProfile.js: Crear un nuevo perfil con configuración detallada
  • profiles/createProfileTags.js: Crear nuevas etiquetas para un perfil específico
  • profiles/deleteProfile.js: Eliminar un perfil específico
  • profiles/deleteProfiles.js: Eliminar múltiples perfiles en lote
  • profiles/getProfileTags.js: Obtener todas las etiquetas asociadas con los perfiles
  • profiles/getProfiles.js: Obtener perfiles con opciones de filtrado
  • profiles/resetProfileProxy.js: Restablecer la configuración del proxy para un perfil específico
  • profiles/updateProfileProxy.js: Actualizar la configuración del proxy para un perfil específico
  • profiles/updateProfileTags.js: Actualizar etiquetas para un perfil específico
  • profiles/getAllProfileGroups.js: Obtener todos los grupos de perfiles
  • profiles/changeProfileGroup.js: Cambiar un grupo de perfiles
  • profiles/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ífico
  • locals/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 Puppeteer
  • cdpEndpoints/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.