📖 Документация BrowserIP
🌐 Русский

Подключение браузера

У каждого сеанса есть отдельный CDP-адрес (в консоли нажмите «Скопировать CDP-адрес»):

https://browserip.com/s/<id>/<token>

Базовый WebSocket идёт по devtools-пути wss://browserip.com/s/<id>/<token>; полученный клиентом из интерфейса /json адрес webSocketDebuggerUrl уже автоматически переписан, поэтому подключайтесь напрямую по CDP-адресу, вручную собирать WebSocket-адрес не нужно. Каждый сеанс занимает отдельный экземпляр браузера (отдельный процесс и контекст) и не мешает другим.

Обратите внимание: этот CDP-адрес отличается от визуального адреса, открываемого в браузере. Визуальная страница — https://browserip.com/view/<id>/<token> (в консоли нажмите «Открыть»), она предназначена для управления человеком прямо на веб-странице; адрес /s/ предназначен для программного подключения к CDP (browser-use, Playwright, Puppeteer).

browser-use (Python)

from browser_use.browser import BrowserSession
from browser_use.agent.service import Agent

# cdp_url берётся из консоли: «Скопировать CDP-адрес»
browser_session = BrowserSession(cdp_url="https://browserip.com/s/<id>/<token>")
agent = Agent(task="...", llm=..., browser_session=browser_session)
await agent.run()

Playwright

Python:

from playwright.async_api import async_playwright

async with async_playwright() as p:
    browser = await p.chromium.connect_over_cdp(
        "https://browserip.com/s/<id>/<token>")
    page = browser.contexts[0].pages[0]
    await page.goto("https://example.com")

JavaScript:

const { chromium } = require('playwright');

const browser = await chromium.connectOverCDP(
  'https://browserip.com/s/<id>/<token>');
const page = browser.contexts()[0].pages()[0];
await page.goto('https://example.com');

Puppeteer (JavaScript)

const puppeteer = require('puppeteer');

const browser = await puppeteer.connect({
  browserURL: 'https://browserip.com/s/<id>/<token>',
});
const page = (await browser.pages())[0];
await page.goto('https://example.com');
⏱️ Во время подключения поддерживайте сеанс активным: сеанс без CDP-активности в течение 20 минут автоматически завершается; для длительных задач периодически взаимодействуйте со страницей или запускайте сеанс заново.