← Browser Run / browser-run / cdp
Использование с Puppeteer (CDP)
Вы можете использовать Puppeteer ↗ чтобы подключаться к сессиям Browser Run из любой среды Node.js и программно автоматизировать задачи браузера через CDP. Это полезно для скриптов, которые выполняются на локальной машине, в CI/CD-пайплайнах или на внешних серверах.
Прежде чем начать, создание пользовательского API Token с Browser Rendering - Edit разрешение.
Предварительные требования
- Node.js, установленный на вашем компьютере
- Аккаунт Cloudflare с включённым Browser Run
- Токен API Browser Run с
Browser Rendering - Editразрешения
Установите Puppeteer
Установите puppeteer-core пакет (версия без встроенного Chrome):
npm i puppeteer-coreПодключение к Browser Run
Следующий скрипт показывает, как подключиться к сеансу Browser Run, перейти на страницу, извлечь заголовок и сделать снимок экрана.
Создайте файл с именем script.js:
const puppeteer = require("puppeteer-core");
const ACCOUNT_ID = process.env.CF_ACCOUNT_ID || "<ACCOUNT_ID>";
const API_TOKEN = process.env.CF_API_TOKEN || "<API_TOKEN>";
const browserWSEndpoint = `wss://api.cloudflare.com/client/v4/accounts/${ACCOUNT_ID}/browser-rendering/devtools/browser?keep_alive=600000`;
async function main() {
const browser = await puppeteer.connect({
browserWSEndpoint,
headers: {
Authorization: `Bearer ${API_TOKEN}`,
},
});
const page = await browser.newPage();
await page.goto("https://developers.cloudflare.com");
const title = await page.title();
console.log(`Page title: ${title}`);
await page.screenshot({ path: "screenshot.png" });
await browser.close();
}
main().catch(console.error);Замените ACCOUNT_ID с ID вашего аккаунта Cloudflare и API_TOKEN с помощью токена API Browser Run или задайте их как переменные окружения:
export CF_ACCOUNT_ID="<ACCOUNT_ID>"
export CF_API_TOKEN="<API_TOKEN>"Запустите скрипт
node script.jsВы должны увидеть, что заголовок страницы выведен в консоль, а скриншот сохранён как screenshot.png.
Как это работает
Скрипт подключается напрямую к Browser Run через WebSocket по протоколу CDP:
- WebSocket-эндпоинт -
browserWSEndpointURL-адрес получает новый сеанс браузера и подключается к нему через WebSocket - Аутентификация -
Authorizationзаголовок с вашим API-токеном подтверждает подлинность запроса - Keep-alive -
keep_aliveпараметр (в миллисекундах) задаёт, как долго сессия остаётся активной - Puppeteer API - после подключения вы управляете браузером с помощью стандартного API Puppeteer
Устранение неполадок
Если у вас есть вопросы или возникла ошибка, см. Часто задаваемые вопросы и руководство по устранению неполадок Browser Run.