INTEGRITY Документация

Использование с Puppeteer (CDP)

Вы можете использовать Puppeteer ↗ чтобы подключаться к сессиям Browser Run из любой среды Node.js и программно автоматизировать задачи браузера через CDP. Это полезно для скриптов, которые выполняются на локальной машине, в CI/CD-пайплайнах или на внешних серверах.

Прежде чем начать, создание пользовательского API Token с 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:

  1. WebSocket-эндпоинт - browserWSEndpoint URL-адрес получает новый сеанс браузера и подключается к нему через WebSocket
  2. Аутентификация - Authorization заголовок с вашим API-токеном подтверждает подлинность запроса
  3. Keep-alive - keep_alive параметр (в миллисекундах) задаёт, как долго сессия остаётся активной
  4. Puppeteer API - после подключения вы управляете браузером с помощью стандартного API Puppeteer

Устранение неполадок

Если у вас есть вопросы или возникла ошибка, см. Часто задаваемые вопросы и руководство по устранению неполадок Browser Run.