Skip to content

SDK de Nstbrowser para Python

Un SDK de Python para interactuar con la API v2 de Nstbrowser

Descripción general

Este SDK implementa la API v2 de Nstbrowser, que es la API recomendada con todas las funciones de la v1 además de funciones adicionales. Proporciona un conjunto completo de herramientas para administrar perfiles de navegador, controlar instancias de navegador, administrar datos locales del navegador y utilizar el Protocolo Chrome DevTools (CDP) para la automatización del navegador.

El SDK le permite:

  • Crear y administrar perfiles de navegador con configuraciones detalladas de huellas digitales
  • Iniciar y detener instancias de navegador individualmente o en lote
  • Configurar y administrar proxies para perfiles
  • Administrar 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

Instalación

bash
pip install nstbrowser
pip install nstbrowser

Comenzando

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

python
from nstbrowser import NstbrowserClient

# Inicializa el cliente con tu clave de API
client = NstbrowserClient(api_key="your_api_key")

# Ahora puedes usar los diversos servicios
profile_id = "your_profile_id"

# Inicia una instancia del navegador
response = client.browsers.start_browser(profile_id=profile_id)
print(f"Navegador iniciado: {response}")

# Detiene la instancia del navegador
response = client.browsers.stop_browser(profile_id=profile_id)
print(f"Navegador detenido: {response}")
from nstbrowser import NstbrowserClient

# Inicializa el cliente con tu clave de API
client = NstbrowserClient(api_key="your_api_key")

# Ahora puedes usar los diversos servicios
profile_id = "your_profile_id"

# Inicia una instancia del navegador
response = client.browsers.start_browser(profile_id=profile_id)
print(f"Navegador iniciado: {response}")

# Detiene la instancia del navegador
response = client.browsers.stop_browser(profile_id=profile_id)
print(f"Navegador detenido: {response}")

Servicios disponibles

El SDK proporciona los siguientes servicios:

BrowsersService

Administra instancias de navegador, incluyendo el inicio, la detención y la obtención de información sobre los navegadores.

python
# Inicia un navegador para un perfil específico
response = client.browsers.start_browser(profile_id="your_profile_id")

# Inicia múltiples navegadores en lote
response = client.browsers.start_browsers(profile_ids=["profile_id_1", "profile_id_2"])

# Inicia un navegador único con configuración personalizada
config = {
    "name": "testProfile",
    "platform": "Windows",
    "kernelMilestone": "132",
    "headless": False,
    "proxy": "http://admin:[email protected]:8000",
    "fingerprint": {
        "userAgent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) ...",
        "screen": {"width": 1280, "height": 1024}
    },
    "startupUrls": ["https://www.example.com"]
}
response = client.browsers.start_once_browser(data=config)

# Detiene un navegador
response = client.browsers.stop_browser(profile_id="your_profile_id")

# Detiene múltiples navegadores
response = client.browsers.stop_browsers(profile_ids=["profile_id_1", "profile_id_2"])

# Obtiene los navegadores activos
response = client.browsers.get_browsers(status="running")

# Obtiene las páginas del navegador
response = client.browsers.get_browser_pages(profile_id="your_profile_id")

# Obtiene la información del depurador del navegador
response = client.browsers.get_browser_debugger(profile_id="your_profile_id")
# Inicia un navegador para un perfil específico
response = client.browsers.start_browser(profile_id="your_profile_id")

# Inicia múltiples navegadores en lote
response = client.browsers.start_browsers(profile_ids=["profile_id_1", "profile_id_2"])

# Inicia un navegador único con configuración personalizada
config = {
    "name": "testProfile",
    "platform": "Windows",
    "kernelMilestone": "132",
    "headless": False,
    "proxy": "http://admin:[email protected]:8000",
    "fingerprint": {
        "userAgent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) ...",
        "screen": {"width": 1280, "height": 1024}
    },
    "startupUrls": ["https://www.example.com"]
}
response = client.browsers.start_once_browser(data=config)

# Detiene un navegador
response = client.browsers.stop_browser(profile_id="your_profile_id")

# Detiene múltiples navegadores
response = client.browsers.stop_browsers(profile_ids=["profile_id_1", "profile_id_2"])

# Obtiene los navegadores activos
response = client.browsers.get_browsers(status="running")

# Obtiene las páginas del navegador
response = client.browsers.get_browser_pages(profile_id="your_profile_id")

# Obtiene la información del depurador del navegador
response = client.browsers.get_browser_debugger(profile_id="your_profile_id")

ProfilesService

Administra perfiles de navegador, incluyendo la creación, eliminación, configuración de proxy y administración de etiquetas.

python
# Crea un nuevo perfil
profile_data = {
    "name": "New Profile",
    "platform": "Windows",
    "kernelMilestone": "132",
    "fingerprint": {
        "userAgent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) ...",
        "timezone": "Asia/Hong_Kong"
    }
}
response = client.profiles.create_profile(data=profile_data)

# Obtiene perfiles con filtrado
response = client.profiles.get_profiles(data={"page": 1, "pageSize": 10})

# Elimina un perfil
response = client.profiles.delete_profile(profile_id="your_profile_id")

# Elimina múltiples perfiles
response = client.profiles.delete_profiles(profile_ids=["profile_id_1", "profile_id_2"])

# Actualiza el proxy de un perfil
response = client.profiles.update_profile_proxy(profile_id="your_profile_id", data={"url": "http://admin:[email protected]:8000"})

# Restablece el proxy de un perfil
response = client.profiles.reset_profile_proxy(profile_id="your_profile_id")

# Administra etiquetas de perfil
response = client.profiles.create_profile_tags(profile_id="your_profile_id", data=[{"name": "social", "color": "#646AEE"}])
response = client.profiles.get_profile_tags()
# Crea un nuevo perfil
profile_data = {
    "name": "New Profile",
    "platform": "Windows",
    "kernelMilestone": "132",
    "fingerprint": {
        "userAgent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) ...",
        "timezone": "Asia/Hong_Kong"
    }
}
response = client.profiles.create_profile(data=profile_data)

# Obtiene perfiles con filtrado
response = client.profiles.get_profiles(data={"page": 1, "pageSize": 10})

# Elimina un perfil
response = client.profiles.delete_profile(profile_id="your_profile_id")

# Elimina múltiples perfiles
response = client.profiles.delete_profiles(profile_ids=["profile_id_1", "profile_id_2"])

# Actualiza el proxy de un perfil
response = client.profiles.update_profile_proxy(profile_id="your_profile_id", data={"url": "http://admin:[email protected]:8000"})

# Restablece el proxy de un perfil
response = client.profiles.reset_profile_proxy(profile_id="your_profile_id")

# Administra etiquetas de perfil
response = client.profiles.create_profile_tags(profile_id="your_profile_id", data=[{"name": "social", "color": "#646AEE"}])
response = client.profiles.get_profile_tags()

LocalsService

Administra datos locales del navegador, como la caché y las cookies.

python
# Borra la caché del navegador
response = client.locals.clear_profile_cache(profile_id="your_profile_id")

# Borra las cookies del navegador
response = client.locals.clear_profile_cookies(profile_id="your_profile_id")
# Borra la caché del navegador
response = client.locals.clear_profile_cache(profile_id="your_profile_id")

# Borra las cookies del navegador
response = client.locals.clear_profile_cookies(profile_id="your_profile_id")

CdpEndpointsService

Proporciona conexiones a navegadores utilizando el Protocolo Chrome DevTools (CDP) para la automatización.

python
# Conecta a un navegador usando CDP
config = {
    "headless": False,
    "autoClose": False
}
response = client.cdp_endpoints.connect_browser(profile_id="your_profile_id", config=config)

# Conecta a un navegador único usando CDP
config = {
    "name": "testProfile",
    "platform": "Windows",
    "kernelMilestone": "132",
    "autoClose": False,
    "headless": False
}
response = client.cdp_endpoints.connect_once_browser(config=config)
# Conecta a un navegador usando CDP
config = {
    "headless": False,
    "autoClose": False
}
response = client.cdp_endpoints.connect_browser(profile_id="your_profile_id", config=config)

# Conecta a un navegador único usando CDP
config = {
    "name": "testProfile",
    "platform": "Windows",
    "kernelMilestone": "132",
    "autoClose": False,
    "headless": False
}
response = client.cdp_endpoints.connect_once_browser(config=config)

Ejemplos

El SDK viene con un conjunto completo de ejemplos en el directorio /examples, organizados por servicio:

Ejemplos de navegador

  • browsers/start_browser.py: Inicia un navegador para un perfil específico
  • browsers/start_browsers.py: Inicia múltiples navegadores en lote
  • browsers/start_once_browser.py: Inicia un navegador único con configuración personalizada
  • browsers/stop_browser.py: Detiene un navegador
  • browsers/stop_browsers.py: Detiene múltiples navegadores
  • browsers/get_browsers.py: Obtiene información del estado del navegador
  • browsers/get_browser_pages.py: Obtiene información de las páginas del navegador
  • browsers/get_browser_debugger.py: Obtiene información del depurador del navegador

Ejemplos de perfil

  • profiles/create_profile.py: Crea un nuevo perfil con configuración detallada
  • profiles/get_profiles.py: Obtiene perfiles con opciones de filtrado
  • profiles/delete_profile.py: Elimina un perfil específico
  • profiles/delete_profiles.py: Elimina múltiples perfiles
  • profiles/update_profile_proxy.py: Actualiza el proxy de un perfil
  • profiles/batch_update_proxy.py: Actualiza proxies para múltiples perfiles
  • profiles/reset_profile_proxy.py: Restablece el proxy de un perfil
  • profiles/batch_reset_profile_proxy.py: Restablece proxies para múltiples perfiles
  • profiles/create_profile_tags.py: Crea etiquetas para un perfil
  • profiles/get_profile_tags.py: Obtiene todas las etiquetas de perfil
  • profiles/update_profile_tags.py: Actualiza etiquetas para un perfil
  • profiles/batch_update_profile_tags.py: Actualiza etiquetas para múltiples perfiles
  • profiles/clear_profile_tags.py: Borra todas las etiquetas de un perfil
  • profiles/batch_clear_profile_tags.py: Borra etiquetas de múltiples perfiles
  • profiles/batch_create_profile_tags.py: Crea etiquetas para múltiples perfiles
  • profiles/get_all_profile_groups.py: Obtiene todos los grupos de perfiles
  • profiles/change_profile_group.py: Cambia un grupo de perfiles
  • profiles/batch_change_profile_group.py: Cambios por lotes a grupos de perfiles

Ejemplos de datos locales

  • locals/clear_profile_cache.py: Borra la caché del navegador
  • locals/clear_profile_cookies.py: Borra las cookies del navegador

Ejemplos de punto final de CDP

  • cdp_endpoints/connect_browser.py: Conecta a un navegador usando CDP y automatiza con Playwright
  • cdp_endpoints/connect_once_browser.py: Conecta a un navegador único con CDP y automatiza con Playwright

Para ejecutar un ejemplo:

bash
python examples/browsers/start_browser.py
python examples/browsers/start_browser.py

Integración de CDP con Playwright

Una característica poderosa es la capacidad de conectarse a navegadores utilizando el Protocolo Chrome DevTools (CDP) y automatizarlos con Playwright:

python
# Obtiene la URL de WebSocket de CDP
websocket_url = client.cdp_endpoints.connect_browser(
    profile_id="your_profile_id", 
    config={"headless": False}
)["data"]["webSocketDebuggerUrl"]

# Usa la URL con Playwright para la automatización
from playwright.async_api import async_playwright

async def automate():
    async with async_playwright() as p:
        browser = await p.chromium.connect_over_cdp(websocket_url)
        page = browser.contexts[0].pages[0]
        await page.goto("https://example.com")
        # ... realiza otras acciones
# Obtiene la URL de WebSocket de CDP
websocket_url = client.cdp_endpoints.connect_browser(
    profile_id="your_profile_id", 
    config={"headless": False}
)["data"]["webSocketDebuggerUrl"]

# Usa la URL con Playwright para la automatización
from playwright.async_api import async_playwright

async def automate():
    async with async_playwright() as p:
        browser = await p.chromium.connect_over_cdp(websocket_url)
        page = browser.contexts[0].pages[0]
        await page.goto("https://example.com")
        # ... realiza otras acciones

Los ejemplos completos para la automatización de CDP están disponibles en el directorio examples/cdp_endpoints.

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.