跳转到主要内容

远程 CDP 浏览器

远程 CDP 浏览器,为现有工具提供可控会话。

创建云端 Chromium 并连接 CDP 客户端,明确管理浏览器创建、协议连接和任务清理。

01 / 产品介绍

什么是远程 CDP 浏览器?

AdsCrawl 远程 CDP 浏览器通过 Chrome DevTools Protocol 提供临时云端 Chromium 会话。REST API 负责创建与删除会话,兼容客户端通过返回的连接地址控制运行中的浏览器。

02 / 适用场景

适合哪些任务?

01

分开管理创建与操作

使用 REST API 创建浏览器,再通过 CDP 操作页面;会话 ID 用于管理,连接地址用于协议访问。

02

接入现有工具

连接 Playwright、Puppeteer 或兼容的 CDP 客户端,并检查所需操作与客户端版本的兼容性。

03

控制运行时长

设置支持的空闲和最大会话超时,跟踪活动会话,并删除已完成任务以释放并发容量。

03 / 快速开始

从一个完整流程开始

  1. 创建 API Key,检查 CDP 并发额度。
  2. 调用 POST /cdp/sessions,设置受支持的超时及浏览器参数。
  3. 使用返回地址连接;下方 Playwright 示例演示读取页面标题。
  4. 在清理流程中调用 DELETE /cdp/sessions/:sessionId 并检查响应。

示例环境:Node.js 与 Playwright(npm install playwright)。 先在服务端设置 ADSCRAWL_API_KEY 环境变量。

完整参数与响应说明 →
Playwright
import { chromium } from "playwright";

const base = "https://api.adscrawl.net";
const headers = {
  "x-api-key": process.env.ADSCRAWL_API_KEY,
  "content-type": "application/json",
};
const res = await fetch(base + "/cdp/sessions", {
  method: "POST", headers,
  body: JSON.stringify({ idleTimeoutMs: 600000 }),
});
if (!res.ok) throw new Error(await res.text());
const session = await res.json();
try {
  const browser = await chromium.connectOverCDP(
    session.cdpBaseUrl
  );
  const page = await browser.contexts()[0].newPage();
  await page.goto("https://www.adscrawl.net");
  console.log(await page.title());
} finally {
  const stopped = await fetch(
    base + "/cdp/sessions/" + session.sessionId,
    { method: "DELETE", headers }
  );
  if (!stopped.ok) throw new Error(await stopped.text());
}

04 / 限制与计费

接入前需要了解

比较套餐与额度 →
  • CDP 用于控制 Chromium,不是 Playwright 原生协议或 Selenium WebDriver 端点。
  • 会话按运行时设置过期,不等于持久化的浏览器配置。
  • 连接地址带有令牌,不能作为永久地址公开或缓存。
  • 断开客户端不能替代删除会话;账号限制和用量计费仍适用。

API Key 仅保存在服务端。遇到 HTTP 402 请检查额度,遇到 429 请降低并发并退避重试。

05 / FAQ

常见问题

API Key 就是 CDP 连接令牌吗?

不是。API Key 用于 REST 会话管理,协议连接使用返回的带令牌地址。

该选择什么客户端?

选择应用已支持的客户端。Playwright 和 Puppeteer 提供高级页面 API,原始 CDP 则需要自行处理命令和事件。

如何在不同任务之间保存环境?

使用云浏览器 API 的保存配置能力,不应假设临时 CDP 会话在删除或过期后仍会保留。