跳转到主要内容
全部集成

浏览器自动化

在 Puppeteer 中使用 AdsCrawl

将 Puppeteer 自动化脚本连接到 AdsCrawl 远程 Chromium。创建 CDP 会话,使用熟悉的浏览器库连接,执行操作,并在结束后释放会话。

能做什么

01

复用浏览器代码

继续使用现有自动化库的页面导航、选择器、点击与表单输入功能。

02

会话内保持状态

多步任务复用页面与浏览器上下文,无需每次请求都新建浏览器。

03

检查运行结果

使用浏览器库读取 DOM、保存截图,结束后关闭远程会话。

准备工作

  • Node.js 20+
  • AdsCrawl 账号和 API Key。
  • 在运行客户端的进程环境中设置 ADSCRAWL_API_KEY,不要写入前端代码或提交到代码仓库。

接入方式 01

远程 CDP

先通过 client.cdp.getVersion 获取 WebSocket 地址,再调用 puppeteer.connect。

  1. 安装客户端

    core 包用于连接远程浏览器,此示例无需下载本地 Chromium。

    Shell
    npm install adscrawl puppeteer-core
  2. 设置 API Key

    在运行客户端的进程环境中设置 ADSCRAWL_API_KEY,不要写入前端代码或提交到代码仓库。

  3. 连接、读取并清理会话

    以 Node.js ES 模块运行。示例读取网页标题,并通过 finally 确保导航失败时仍请求关闭会话。

    JavaScript
    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 账号积分,安装客户端不会额外赠送调用额度。
  • 使用后关闭远程会话。客户端断开连接或关闭查看窗口,不代表服务端会话已经停止。
查看价格与积分换算

继续阅读

JavaScript SDK 与 CDP 示例远程 CDP 概念