Python 批量抓取 Google SERP 搜索结果:DataForSEO API 免外币代理与自动化监控实战
Python 批量抓取 Google SERP 自然搜索结果实战教程。基于 DataForSEO 官方接口免外卡代理,无需自建代理池或维护逆向无头浏览器,按次调用即可稳定获取 Google 搜索前 100 位自然排名、AI Overviews 引用源及富媒体卡片结构化数据,数据准确权威且成本可控,出海首选。
在进行出海 SEO、竞品监控、AI 搜索引用分析与市场调研时,实时抓取 Google 搜索结果 (SERP) 是核心需求。但自建爬虫常遭遇 IP 封禁、复杂的验证码 (CAPTCHA) 拦截与地理位置定位失真。青柠AI 代理的 DataForSEO 接口提供了企业级爬虫代理,无需海外账号与信用卡,按次精准计费。
一、 Google SERP 核心返回字段解析表
| 返回字段标识 | 字段含义 | SEO 价值与实战分析 |
|---|---|---|
| type | 条目类型 (organic, featured_snippet, ai_overview) | 区分自然结果、精选摘要与 AI 搜索引用 |
| rank_group | 自然搜索真实排名 (1-100) | 监控核心关键词排名的升降波动趋势 |
| domain | 搜索结果着陆页域名 | 统计竞品域名在行业核心词下的可见度权重 |
| title / description | 搜索标题与 Meta 描述文本 | 分析高点击率网页的标题文案与关键词布局 |
二、 常用国家与地区 location_code 查询表
| 目标市场国家 | location_code 代码 | 默认语言代码 (language_code) | 典型出海业务 |
|---|---|---|---|
| 美国 (United States) | 2840 | en | 全球主流出海软件、SaaS 与跨境电商 |
| 英国 (United Kingdom) | 2826 | en | 欧洲英语区核心外贸市场 |
| 日本 (Japan) | 2392 | ja | 泛娱乐出海、二次元出海与日韩电商 |
| 德国 (Germany) | 2276 | de | 欧洲工业外贸与高净值消费市场 |
| 新加坡 (Singapore) | 2702 | en | 东南亚出海金融中枢与科技出海 |
三、 生产级 Python 抓取前 100 排名脚本
import requests
import json
url = "https://api.callaiapi.com/dataforseo/v3/serp/google/organic/live/advanced"
headers = {
"Authorization": "Bearer sk-live-your-callai-key",
"Content-Type": "application/json"
}
payload = [
{
"keyword": "best ai coding assistant 2026",
"location_code": 2840, # 美国地区
"language_code": "en", # 英语
"depth": 100 # 抓取前 100 条
}
]
response = requests.post(url, headers=headers, json=payload)
data = response.json()
# 解析返回的自然搜索条目
items = data["tasks"][0]["result"][0]["items"]
for item in items[:10]:
if item.get("type") == "organic":
print(f"[{item.get('rank_group')}] {item.get('title')}")
print(f" URL: {item.get('url')}")
print(f" 域名: {item.get('domain')}\n")抓取避坑:保证 location_code 与 language_code 匹配
例如设定 location_code 为 2840 (美国) 时,language_code 建议设为 "en";若抓取日本 (2392),则设为 "ja"。不一致的搭配可能导致 Google 返回带有本地化偏差或重定向的异常 SERP 结果。
站内推荐实用工具
一键提取批量搜索结果中的独立域名
抓取到海量 URL 后,使用站内域名提取工具,一键按根域名去重并生成竞品分析报表。