关于 scraping-google-search-results
用于采集 Google 搜索结果并生成 SERP 数据集的技能,可设置查询词、国家、语言、页数和移动端布局,并收录自然结果及 SERP 功能项。
主要功能
- 01搜索多个查询词
- 02设置国家和语言
- 03限制每个查询的页数
- 04获取移动端 SERP 布局
- 05收录精选摘要和 PAA 结果
适用场景
- 01为关键词研究收集搜索结果
- 02比较不同国家的搜索结果
- 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 服务
输入
| 参数 | 类型 | 必填 | 默认值 | 说明 |
|---|---|---|---|---|
startUrls | array | 可选 | [] | Google 搜索网址 |
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 函数 |
工作流
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