获取 API 密钥

动态网页抓取,专为稍后才加载数据的页面

无限加载的信息流、“加载更多”按钮和由 JavaScript 生成的页面,交给普通请求的只是一个空壳。Gologin Cloud Browser 会像真人的浏览器一样加载它们,让您的 Playwright 或 Puppeteer 脚本采集到页面上出现的一切内容。

免费开始,无需信用卡。含住宅 IP。

G2 评分 4.7 / 5基于 79 条评价

动态网页抓取:普通请求、无头 Chrome 还是云浏览器

普通请求读取的是服务器发送的 HTML。动态页面的数据要稍后才通过 JavaScript、滚动和点击送达。下面是每种方式能拿到的内容。

普通 HTTP 请求、无头 Chrome 和 Gologin Cloud Browser 从动态页面能拿到的内容
能拿到什么Gologin普通 HTTP 请求无头 Chrome
由 JavaScript 生成的内容是否是
无限滚动和“加载更多”是否是
几秒后才加载的内容是否是
包含住宅 IP是否否
下次运行使用同一会话是否否
需要运行的服务器无无需自备

只需要渲染后的页面、不需要会话?Web Unlocker 一次请求即可返回,并且仅在成功时计费。

如何用 Playwright、Puppeteer 或 Python 抓取动态网站

一行代码把脚本连接到 Gologin Cloud Browser,等待内容出现,然后一直滚动到不再出现新内容为止。下面的代码从一个无限滚动的测试页面采集到了全部 100 条名言。

  1. 步骤 01

    获取令牌

    使用 Google 注册,然后从控制面板复制您的密钥。免费,无需信用卡。

  2. 步骤 02

    创建配置文件

    在控制面板中点击一下,或调用一次 API。配置文件会保存设备、IP 和登录状态。

  3. 步骤 03

    运行脚本

    安装库,然后用您的令牌和配置文件 ID 运行下面的脚本。它会一直滚动,直到不再加载新的名言,然后连同作者一起采集每一条。更多内容请参阅入门指南。

安装
npm install playwright-core
运行
GOLOGIN_TOKEN=your_token GOLOGIN_PROFILE_ID=your_profile_id node scrape.mjs
连接地址
wss://cloudbrowser.gologin.com/connect?token=…&profile=…
import { chromium } from "playwright-core";

const token = process.env.GOLOGIN_TOKEN;
const profileId = process.env.GOLOGIN_PROFILE_ID;
const endpoint = `wss://cloudbrowser.gologin.com/connect?token=${token}&profile=${profileId}`;

const browser = await chromium.connectOverCDP(endpoint);
const page = await browser.contexts()[0].newPage();

await page.goto("http://quotes.toscrape.com/scroll");
await page.waitForSelector(".quote");

for (let i = 0; i < 30; i++) {
  const before = await page.locator(".quote").count();
  await page.evaluate(() => window.scrollTo(0, document.body.scrollHeight));
  try {
    await page.waitForFunction(
      (n) => document.querySelectorAll(".quote").length > n,
      before,
      { timeout: 3000 }
    );
  } catch {
    break;
  }
}

const quotes = await page.$$eval(".quote", (els) =>
  els.map((el) => ({
    text: el.querySelector(".text")?.textContent,
    author: el.querySelector(".author")?.textContent,
  }))
);
console.log(quotes.length, quotes[0]);

await page.close();
await browser.close();

套餐与价格

每个套餐运行的都是同一款浏览器,并包含住宅 IP。套餐的区别在于浏览器小时数和并行会话数。

需要同时运行更多?任何套餐都可以加购并行会话,每个每月 $2,按需添加。超出额度的代理流量为 $1/GB。

Custom

4 个并行会话起,配备专属客户经理、高级 SLA 和定制化上手指导。

预约专属演示

完整技术栈的一部分

一个账户,一个代理网络,一套生态。按任务需要选择产品。

动态网页抓取常见问题

什么是动态网页抓取?

从在浏览器中生成内容的页面上采集数据:信息流、搜索结果、价格或评论,它们在页面加载之后、滚动时或点击后才出现。您需要先用真实浏览器运行页面,才能读取这些内容。

为什么我的爬虫在 JavaScript 网站上返回空的 HTML?

服务器先发送一个空壳,数据稍后才通过 JavaScript 送达。普通请求停在空壳这一步,所以根本没有数据可以解析。请在浏览器中加载页面,并等待您需要的元素出现,就像上面的脚本那样。

我需要 Cloud Browser 还是 Web Unlocker?

当您需要某个 URL 渲染后的页面时,请使用 Web Unlocker:一次请求,仅在成功时计费。当任务需要会话时,请使用 Cloud Browser:滚动信息流、逐页点击、在两次运行之间保持登录。

如何抓取无限滚动的页面?

滚动到底部,等待新条目出现,然后重复,直到数量不再增加。上面的脚本正是这样做的,在没有新内容加载时会自动停止。

我能抓取需要登录才能访问的页面吗?

能。在配置文件中登录一次,会话就会保存在其中:之后重新连接时您仍处于登录状态。需要在多个浏览器之间共用一个登录?请参阅数据采集浏览器。请只采集您有权访问的数据。

可以用 Python 进行动态网页抓取吗?

可以。Python Playwright 用 connect_over_cdp 连接到同一个地址,上面的 Python 标签页中有完整脚本。用 pip install playwright 安装即可;无需在本地下载浏览器,因为浏览器在云端运行。

抓取页面加载之后才出现的数据。

一行代码连接您的 Playwright 或 Puppeteer 脚本,采集真实浏览器看到的内容。

免费开始,无需信用卡。含住宅 IP。

G2 评分 4.7 / 5基于 79 条评价