← 返回博客

如何获取 100 条 Google 结果:用 Search API 分页(2026)

Google Search API 中分页的工作原理——抓取第 1–10 页、收集多达 100 条结果、去重并控制成本。附 Python 和 Node.js 代码。

1 分钟阅读

Google 每页返回约 10 条自然结果。要收集多达 100 条,你需要用 page 参数翻页。下面是用 serp.cheap 高效完成的方法。

基础知识

  • page 是从 1 开始计数的(1 = 第一页)。
  • 每页返回约 10 条自然结果。
  • 每一页都是单独计费的请求——所以 100 条结果 ≈ 10 次请求。

Python:收集多达 100 条结果

import requests

def fetch_results(q, gl="us", max_results=100):
    out, page = [], 1
    while len(out) < max_results:
        r = requests.post(
            "https://api.serp.cheap/v1/search",
            headers={"X-API-Key": "YOUR_KEY"},
            json={"q": q, "gl": gl, "page": page},
            timeout=30,
        )
        r.raise_for_status()
        batch = r.json()["organic"]
        if not batch:
            break          # no more results
        out += batch
        page += 1
    return out[:max_results]

results = fetch_results("best project management software")
print(len(results), "results")

Node.js

async function fetchResults(q, max = 100) {
  const out = [];
  for (let page = 1; out.length < max; page++) {
    const res = await fetch("https://api.serp.cheap/v1/search", {
      method: "POST",
      headers: { "X-API-Key": process.env.SERP_KEY, "Content-Type": "application/json" },
      body: JSON.stringify({ q, gl: "us", page }),
    });
    const { organic } = await res.json();
    if (!organic.length) break;
    out.push(...organic);
  }
  return out.slice(0, max);
}

小贴士

  • 按 link 去重,如果你合并多页——偶尔会出现重叠。
  • 尽早停止,当某页没有返回结果时。
  • 懒加载——如果你只展示 10 条,就别拉取 100 条。成本随页数增长。

接下来

Frequently asked questions

如何从 API 获取超过 10 条 Google 结果?+

用 page 参数请求额外页面(从 1 开始计数)。每页返回约 10 条自然结果,因此第 1–10 页最多给你约 100 条。每一页都是单独计费的请求。

抓取更多页面会花更多钱吗?+

会——每一页都是一次请求。懒加载额外页面,只在用户或任务真正需要时才抓取。在 serp.cheap 上,一个全新页面是 $0.0006(缓存命中 $0.0003)。

获取你的 API 密钥

直接购买最便宜, 用银行卡或加密货币支付,无需 KYC。或通过市场。