SuperAPI AI 工具集

scraping-google-search-results

数据与分析

查看项目

更新于 10-15 13:44

技能介绍

Scraping Google Search Results

本技能用于抓取 Google 搜索结果,返回任意搜索查询的原始 SERP 数据集,包含自然结果、精选摘要、People Also Ask 框以及其他 SERP 特性。

前置条件

  • 已设置 APIFY_TOKEN 环境变量
  • 可选:已安装 Apify MCP 服务器

输入参数

参数 类型 必填 默认值 说明
startUrls array 可选 [] Google 搜索 URL
searchTerms array 可选 [] 在 Google 上搜索的关键词
countryCode string 可选 US Google 搜索的国家/地区(例如 US、GB、TR)
languageCode string 可选 — 结果语言(例如 en)
maxItems number 可选 无限制 所有查询合计返回的最大结果数
maxPagesPerQuery integer 可选 1 每个查询的最大结果页数
mobileResults boolean 可选 false 是否抓取移动端 SERP 布局
customMapFunction string 可选 — 用于转换每个输出对象的 JavaScript 函数

工作流程

进度:

  • [ ] 步骤 1:规范化查询列表
  • [ ] 步骤 2:运行 google-search-scraper
  • [ ] 步骤 3:轮询至 SUCCEEDED
  • [ ] 步骤 4:交付 SERP 数据集

步骤 2:运行 Actor

推荐方式 —— run_actor.js(自动处理等待、输出与文件保存):

# 快速回答(在对话中打印表格)
node scripts/run_actor.js \
  --actor "apidojo~google-search-scraper" \
  --input '{"param": "value"}'

# 保存为 CSV
node scripts/run_actor.js \
  --actor "apidojo~google-search-scraper" \
  --input '{"param": "value"}' \
  --output YYYY-MM-DD_results.csv --format csv

# 保存为 JSON
node scripts/run_actor.js \
  --actor "apidojo~google-search-scraper" \
  --input '{"param": "value"}' \
  --output YYYY-MM-DD_results.json --format json

APIFY_TOKEN 必须设置在环境变量或 .env 文件中。

如果 Apify MCP 可用:

工具:apify:run-actor Actor:"apidojo~google-search-scraper" 输入:

{
  "queries": ["query1", "query2"],
  "maxPagesPerQuery": 1,
  "countryCode": "us",
  "languageCode": "en"
}

REST API 备用方式:

curl -X POST \
  "https://api.apify.com/v2/acts/apidojo~google-search-scraper/runs?token=$APIFY_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"queries": ["query1", "query2"], "maxPagesPerQuery": 1}'

将返回的 id 保存为 RUN_ID。轮询直到 status = SUCCEEDED:

curl "https://api.apify.com/v2/actor-runs/$RUN_ID?token=$APIFY_TOKEN" | grep '"status"'

获取结果:

curl "https://api.apify.com/v2/actor-runs/$RUN_ID/dataset/items?token=$APIFY_TOKEN&format=json"

步骤 3:处理边界情况

  • 0 条自然结果:查询可能只触发广告或知识面板 —— 需向用户说明。
  • 存在 SERP 特性(PAA、摘要):这些会作为独立的结果类型返回 —— 请将其包含在输出中并标注 type 字段。
  • 不同国家结果不同:需要地理特定结果时,请显式指定 countryCode。

输出格式

# Google SERP Dataset: "<query>"
Query: <query> | Country: <cc> | Pages: N | Results: N

| Position | URL | Title | Snippet (truncated) | Type |
|----------|-----|-------|---------------------|------|
| 1        | ... | ...   | ...                 | organic |
| —        | ... | ...   | ...                 | featured_snippet |
| —        | ... | ...   | ...                 | paa |

可用字段:query、position、url、title、description、type(organic/featured_snippet/paa/local_pack/image/video)、sitelinks、rating、reviewsCount。

故障排查

  • Google CAPTCHA/封锁:Actor 会自动处理;若持续出现,请减少查询批次大小。
  • 位置不一致:SERP 位置会因地点和个性化而变化 —— 使用 countryCode 以保持一致性。