cdpBaseUrl,然后直接将其传给 playwright.connectOverCDP() 或 Puppeteer 的 connect()。从此,你所熟悉的所有 Playwright 或 Puppeteer API 都会像在本地一样工作:导航、点击、填写表单、拦截网络请求、提取数据,而 AdsCrawl 负责处理浏览器基础设施、代理和指纹。
工作原理
1
创建会话
发送 响应示例如下:
POST /cdp/sessions,传入期望的 idleTimeoutMs、maxSessionMs 和 browserSettings。API 会返回 sessionId 和已包含数据令牌的 cdpBaseUrl。2
使用 Playwright 或 Puppeteer 连接
直接将
cdpBaseUrl 传入你的自动化库,无需额外配置。3
自动化页面操作
使用完整的 Playwright 或 Puppeteer API 进行导航、交互和数据提取,远程浏览器的行为与本地浏览器完全一致。
4
完成后删除会话
调用
DELETE /cdp/sessions/:sessionId 立即终止浏览器并释放资源,而无需等待空闲或最大会话超时。安全模型
Remote CDP 使用两个独立的令牌来保护你的会话:- Data token — 嵌入在
cdpBaseUrl中,用于所有 CDP WebSocket 连接和发现请求。此令牌长期有效(与会话生命周期一致),权限范围为通过 CDP 读取和控制浏览器。 - Control token (
controlToken) — 由POST /cdp/live-token签发的单次使用令牌,用于实时交互式查看器访问。它在 30 秒后过期,且只能使用一次。每次需要打开实时查看器时,请请求新的 control token。
会话生命周期
在创建会话时通过两个字段配置会话生命周期:
随时可以通过
GET /cdp/sessions 查询活跃会话,或通过 DELETE /cdp/sessions/:sessionId 删除特定会话。
Remote CDP 与 Cloud Browsers 的区别
Remote CDP 会话是临时的,不保存任何配置文件,所有浏览器状态(cookies、local storage、历史记录)在会话结束时都会被丢弃。当你需要一个有状态的脚本会话,但不需要长期配置文件持久化时,请使用 Remote CDP。 如果你需要保存浏览器配置文件,使 cookies、指纹设置和代理配置在多个会话之间持久化,请改用 Cloud Browsers。API 参考
CDP Sessions
创建、列出和删除专属 CDP 会话。
CDP Live Token
签发单次使用的 control token 用于实时交互式查看器访问。