Skip to content

Nstbrowser SDK для Python

SDK для Python для взаимодействия с Nstbrowser API v2

Обзор

Этот SDK реализует Nstbrowser API v2, который является рекомендуемым API с полным функционалом из v1, а также дополнительными функциями. Он предоставляет комплексный набор инструментов для управления профилями браузера, контроля экземпляров браузера, управления локальными данными браузера и использования протокола Chrome DevTools (CDP) для автоматизации браузера.

SDK позволяет вам:

  • Создавать и управлять профилями браузера с подробными конфигурациями отпечатков
  • Запускать и останавливать экземпляры браузера по отдельности или пакетно
  • Настраивать и управлять прокси для профилей
  • Управлять тегами профилей для лучшей организации
  • Очищать кэш и куки браузера
  • Подключаться к браузерам с помощью протокола Chrome DevTools (CDP)
  • Автоматизировать действия браузера через интеграцию CDP

Установка

bash
pip install nstbrowser
pip install nstbrowser

Начало работы

Для использования SDK вам нужен API ключ от Nstbrowser:

python
from nstbrowser import NstbrowserClient

# Инициализация клиента с вашим API ключом
client = NstbrowserClient(api_key="your_api_key")

# Теперь вы можете использовать различные сервисы
profile_id = "your_profile_id"

# Запуск экземпляра браузера
response = client.browsers.start_browser(profile_id=profile_id)
print(f"Браузер запущен: {response}")

# Остановка экземпляра браузера
response = client.browsers.stop_browser(profile_id=profile_id)
print(f"Браузер остановлен: {response}")
from nstbrowser import NstbrowserClient

# Инициализация клиента с вашим API ключом
client = NstbrowserClient(api_key="your_api_key")

# Теперь вы можете использовать различные сервисы
profile_id = "your_profile_id"

# Запуск экземпляра браузера
response = client.browsers.start_browser(profile_id=profile_id)
print(f"Браузер запущен: {response}")

# Остановка экземпляра браузера
response = client.browsers.stop_browser(profile_id=profile_id)
print(f"Браузер остановлен: {response}")

Доступные сервисы

SDK предоставляет следующие сервисы:

BrowsersService

Управляет экземплярами браузера, включая запуск, остановку и получение информации о браузерах.

python
# Запуск браузера для определенного профиля
response = client.browsers.start_browser(profile_id="your_profile_id")

# Запуск нескольких браузеров пакетно
response = client.browsers.start_browsers(profile_ids=["profile_id_1", "profile_id_2"])

# Запуск одноразового браузера с пользовательской конфигурацией
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)

# Остановка браузера
response = client.browsers.stop_browser(profile_id="your_profile_id")

# Остановка нескольких браузеров
response = client.browsers.stop_browsers(profile_ids=["profile_id_1", "profile_id_2"])

# Получение активных браузеров
response = client.browsers.get_browsers(status="running")

# Получение страниц браузера
response = client.browsers.get_browser_pages(profile_id="your_profile_id")

# Получение информации о отладчике браузера
response = client.browsers.get_browser_debugger(profile_id="your_profile_id")
# Запуск браузера для определенного профиля
response = client.browsers.start_browser(profile_id="your_profile_id")

# Запуск нескольких браузеров пакетно
response = client.browsers.start_browsers(profile_ids=["profile_id_1", "profile_id_2"])

# Запуск одноразового браузера с пользовательской конфигурацией
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)

# Остановка браузера
response = client.browsers.stop_browser(profile_id="your_profile_id")

# Остановка нескольких браузеров
response = client.browsers.stop_browsers(profile_ids=["profile_id_1", "profile_id_2"])

# Получение активных браузеров
response = client.browsers.get_browsers(status="running")

# Получение страниц браузера
response = client.browsers.get_browser_pages(profile_id="your_profile_id")

# Получение информации о отладчике браузера
response = client.browsers.get_browser_debugger(profile_id="your_profile_id")

ProfilesService

Управляет профилями браузера, включая создание, удаление, настройку прокси и управление тегами.

python
# Создание нового профиля
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)

# Получение профилей с фильтрацией
response = client.profiles.get_profiles(data={"page": 1, "pageSize": 10})

# Удаление профиля
response = client.profiles.delete_profile(profile_id="your_profile_id")

# Удаление нескольких профилей
response = client.profiles.delete_profiles(profile_ids=["profile_id_1", "profile_id_2"])

# Обновление прокси профиля
response = client.profiles.update_profile_proxy(profile_id="your_profile_id", data={"url": "http://admin:[email protected]:8000"})

# Сброс прокси профиля
response = client.profiles.reset_profile_proxy(profile_id="your_profile_id")

# Управление тегами профиля
response = client.profiles.create_profile_tags(profile_id="your_profile_id", data=[{"name": "social", "color": "#646AEE"}])
response = client.profiles.get_profile_tags()
# Создание нового профиля
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)

# Получение профилей с фильтрацией
response = client.profiles.get_profiles(data={"page": 1, "pageSize": 10})

# Удаление профиля
response = client.profiles.delete_profile(profile_id="your_profile_id")

# Удаление нескольких профилей
response = client.profiles.delete_profiles(profile_ids=["profile_id_1", "profile_id_2"])

# Обновление прокси профиля
response = client.profiles.update_profile_proxy(profile_id="your_profile_id", data={"url": "http://admin:[email protected]:8000"})

# Сброс прокси профиля
response = client.profiles.reset_profile_proxy(profile_id="your_profile_id")

# Управление тегами профиля
response = client.profiles.create_profile_tags(profile_id="your_profile_id", data=[{"name": "social", "color": "#646AEE"}])
response = client.profiles.get_profile_tags()

LocalsService

Управляет локальными данными браузера, такими как кэш и куки.

python
# Очистка кэша браузера
response = client.locals.clear_profile_cache(profile_id="your_profile_id")

# Очистка куки браузера
response = client.locals.clear_profile_cookies(profile_id="your_profile_id")
# Очистка кэша браузера
response = client.locals.clear_profile_cache(profile_id="your_profile_id")

# Очистка куки браузера
response = client.locals.clear_profile_cookies(profile_id="your_profile_id")

CdpEndpointsService

Предоставляет подключения к браузерам с использованием протокола Chrome DevTools (CDP) для автоматизации.

python
# Подключение к браузеру с помощью CDP
config = {
    "headless": False,
    "autoClose": False
}
response = client.cdp_endpoints.connect_browser(profile_id="your_profile_id", config=config)

# Подключение к одноразовому браузеру с помощью CDP
config = {
    "name": "testProfile",
    "platform": "Windows",
    "kernelMilestone": "132",
    "autoClose": False,
    "headless": False
}
response = client.cdp_endpoints.connect_once_browser(config=config)
# Подключение к браузеру с помощью CDP
config = {
    "headless": False,
    "autoClose": False
}
response = client.cdp_endpoints.connect_browser(profile_id="your_profile_id", config=config)

# Подключение к одноразовому браузеру с помощью CDP
config = {
    "name": "testProfile",
    "platform": "Windows",
    "kernelMilestone": "132",
    "autoClose": False,
    "headless": False
}
response = client.cdp_endpoints.connect_once_browser(config=config)

Примеры

SDK поставляется с комплексным набором примеров в директории /examples, организованных по сервисам:

Примеры работы с браузерами

  • browsers/start_browser.py: Запуск браузера для определенного профиля
  • browsers/start_browsers.py: Запуск нескольких браузеров пакетно
  • browsers/start_once_browser.py: Запуск одноразового браузера с пользовательской конфигурацией
  • browsers/stop_browser.py: Остановка браузера
  • browsers/stop_browsers.py: Остановка нескольких браузеров
  • browsers/get_browsers.py: Получение информации о состоянии браузеров
  • browsers/get_browser_pages.py: Получение информации о страницах браузера
  • browsers/get_browser_debugger.py: Получение информации об отладчике браузера

Примеры работы с профилями

  • profiles/create_profile.py: Создание нового профиля с подробной конфигурацией
  • profiles/get_profiles.py: Получение профилей с опциями фильтрации
  • profiles/delete_profile.py: Удаление определенного профиля
  • profiles/delete_profiles.py: Удаление нескольких профилей
  • profiles/update_profile_proxy.py: Обновление прокси профиля
  • profiles/batch_update_proxy.py: Обновление прокси для нескольких профилей
  • profiles/reset_profile_proxy.py: Сброс прокси профиля
  • profiles/batch_reset_profile_proxy.py: Сброс прокси для нескольких профилей
  • profiles/create_profile_tags.py: Создание тегов для профиля
  • profiles/get_profile_tags.py: Получение всех тегов профиля
  • profiles/update_profile_tags.py: Обновление тегов для профиля
  • profiles/batch_update_profile_tags.py: Обновление тегов для нескольких профилей
  • profiles/clear_profile_tags.py: Очистка всех тегов из профиля
  • profiles/batch_clear_profile_tags.py: Очистка тегов из нескольких профилей
  • profiles/batch_create_profile_tags.py: Создание тегов для нескольких профилей
  • profiles/get_all_profile_groups.py: Получение всех групп профилей
  • profiles/change_profile_group.py: Изменение группы профиля
  • profiles/batch_change_profile_group.py: Пакетное изменение групп профилей

Примеры работы с локальными данными

  • locals/clear_profile_cache.py: Очистка кэша браузера
  • locals/clear_profile_cookies.py: Очистка куки браузера

Примеры работы с конечными точками CDP

  • cdp_endpoints/connect_browser.py: Подключение к браузеру с помощью CDP и автоматизация с помощью Playwright
  • cdp_endpoints/connect_once_browser.py: Подключение к одноразовому браузеру с CDP и автоматизация с помощью Playwright

Для запуска примера:

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

Интеграция CDP с Playwright

Одной из мощных функций является возможность подключения к браузерам с использованием протокола Chrome DevTools (CDP) и автоматизации их с помощью Playwright:

python
# Получение URL WebSocket CDP
websocket_url = client.cdp_endpoints.connect_browser(
    profile_id="your_profile_id", 
    config={"headless": False}
)["data"]["webSocketDebuggerUrl"]

# Использование URL с Playwright для автоматизации
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")
        # ... выполнение других действий
# Получение URL WebSocket CDP
websocket_url = client.cdp_endpoints.connect_browser(
    profile_id="your_profile_id", 
    config={"headless": False}
)["data"]["webSocketDebuggerUrl"]

# Использование URL с Playwright для автоматизации
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")
        # ... выполнение других действий

Полные примеры автоматизации CDP доступны в директории examples/cdp_endpoints.

Поддержка

Для получения поддержки, пожалуйста, свяжитесь с нами через Discord. Для более подробной документации посетите официальную документацию Nstbrowser: Nstbrowser API Documentation.