mcpField
S
scraping-google-search-results

scraping-google-search-results

github.com/apidojo-io数据与数据库1794 次安装24 周前更新
代码仓库

关于 scraping-google-search-results

用于采集 Google 搜索结果并生成 SERP 数据集的技能,可设置查询词、国家、语言、页数和移动端布局,并收录自然结果及 SERP 功能项。

主要功能

  1. 01搜索多个查询词
  2. 02设置国家和语言
  3. 03限制每个查询的页数
  4. 04获取移动端 SERP 布局
  5. 05收录精选摘要和 PAA 结果

适用场景

  1. 01为关键词研究收集搜索结果
  2. 02比较不同国家的搜索结果
  3. 03记录精选摘要和 PAA 问答框

MCP 相关

Apify MCP 可用时,该技能通过 `apify:run-actor` 运行 `apidojo~google-search-scraper` Actor。

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/apidojo-io/apidojo-skills --skill scraping-google-search-results

安装后在 Claude Code 中输入/scraping-google-search-results确认已加载。

详细介绍

抓取 Google 搜索结果

适用于任意搜索查询的原始 SERP 数据集。返回自然搜索结果、精选摘要、「大家还在问」框及其他 SERP 功能。

前置条件

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

输入

参数类型必填默认值说明
startUrlsarray可选[]Google 搜索网址
searchTermsarray可选[]要在 Google 上搜索的关键词
countryCodestring可选USGoogle 搜索国家/地区(例如:US、GB、TR)
languageCodestring可选—结果语言(例如:en)
maxItemsnumber可选不限所有查询返回的最大结果数
maxPagesPerQueryinteger可选1每个查询的最大结果页数
mobileResultsboolean可选false获取移动端 SERP 布局
customMapFunctionstring可选—用于转换每个输出对象的 JavaScript 函数

工作流

Progress:
- [ ] Step 1: Normalize query list
- [ ] Step 2: Run google-search-scraper
- [ ] Step 3: Poll for SUCCEEDED
- [ ] Step 4: Deliver SERP dataset
步骤 2:运行 Actor

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

# Quick answer (prints table to chat)
node scripts/run_actor.js \
  --actor "apidojo~google-search-scraper" \
  --input '{"param": "value"}'

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

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

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

如果可以使用 Apify MCP:

Tool: apify:run-actor
Actor: "apidojo~google-search-scraper"
Input:
{
  "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 |

Available fields: query, position, url, title, description, type (organic/
featured_snippet/paa/local_pack/image/video), sitelinks, rating, reviewsCount

故障排除

Google CAPTCHA / 屏蔽: Actor 会自动处理;若问题持续出现,请减少查询批次大小。 排名不一致: SERP 排名会因位置和个性化而异 — 使用 countryCode 以保持一致。

评论

支持 Markdown