能做什么
01
复用浏览器代码
继续使用现有自动化库的页面导航、选择器、点击与表单输入功能。
02
会话内保持状态
多步任务复用页面与浏览器上下文,无需每次请求都新建浏览器。
03
检查运行结果
使用浏览器库读取 DOM、保存截图,结束后关闭远程会话。
准备工作
- Node.js 20+
- AdsCrawl 账号和 API Key。
- 在运行客户端的进程环境中设置 ADSCRAWL_API_KEY,不要写入前端代码或提交到代码仓库。
接入方式 01
远程 CDP
先通过 client.cdp.getVersion 获取 WebSocket 地址,再调用 puppeteer.connect。
安装客户端
core 包用于连接远程浏览器,此示例无需下载本地 Chromium。
npm install adscrawl puppeteer-core设置 API Key
在运行客户端的进程环境中设置 ADSCRAWL_API_KEY,不要写入前端代码或提交到代码仓库。
连接、读取并清理会话
以 Node.js ES 模块运行。示例读取网页标题,并通过 finally 确保导航失败时仍请求关闭会话。
import puppeteer from 'puppeteer-core'; import AdsCrawl from 'adscrawl'; const client = new AdsCrawl(); const session = await client.cdp.create(); try { const version = await client.cdp.getVersion(session); const browser = await puppeteer.connect({ browserWSEndpoint: version.webSocketDebuggerUrl, }); try { const pages = await browser.pages(); const page = pages[0] ?? await browser.newPage(); await page.goto('https://example.com'); console.log(await page.title()); } finally { browser.disconnect(); } } finally { await client.cdp.close(session.sessionId); }
用量与限制
- 远程 CDP 连接 Chromium,不提供 Firefox 或 WebKit 端点;Playwright 的 CDP 连接与其原生 Playwright 协议也有所区别。
- API 请求和浏览器会话消耗 AdsCrawl 账号积分,安装客户端不会额外赠送调用额度。
- 使用后关闭远程会话。客户端断开连接或关闭查看窗口,不代表服务端会话已经停止。