Nstbrowser SDK для Python
SDK для Python для взаимодействия с Nstbrowser API v2
Обзор
Этот SDK реализует Nstbrowser API v2, который является рекомендуемым API с полным функционалом из v1, а также дополнительными функциями. Он предоставляет комплексный набор инструментов для управления профилями браузера, контроля экземпляров браузера, управления локальными данными браузера и использования протокола Chrome DevTools (CDP) для автоматизации браузера.
SDK позволяет вам:
- Создавать и управлять профилями браузера с подробными конфигурациями отпечатков
- Запускать и останавливать экземпляры браузера по отдельности или пакетно
- Настраивать и управлять прокси для профилей
- Управлять тегами профилей для лучшей организации
- Очищать кэш и куки браузера
- Подключаться к браузерам с помощью протокола Chrome DevTools (CDP)
- Автоматизировать действия браузера через интеграцию CDP
Установка
pip install nstbrowser
pip install nstbrowser
Начало работы
Для использования SDK вам нужен API ключ от Nstbrowser:
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
Управляет экземплярами браузера, включая запуск, остановку и получение информации о браузерах.
# Запуск браузера для определенного профиля
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
Управляет профилями браузера, включая создание, удаление, настройку прокси и управление тегами.
# Создание нового профиля
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
Управляет локальными данными браузера, такими как кэш и куки.
# Очистка кэша браузера
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) для автоматизации.
# Подключение к браузеру с помощью 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 и автоматизация с помощью Playwrightcdp_endpoints/connect_once_browser.py
: Подключение к одноразовому браузеру с CDP и автоматизация с помощью Playwright
Для запуска примера:
python examples/browsers/start_browser.py
python examples/browsers/start_browser.py
Интеграция CDP с Playwright
Одной из мощных функций является возможность подключения к браузерам с использованием протокола Chrome DevTools (CDP) и автоматизации их с помощью Playwright:
# Получение 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.