Google SERP API:如何使用 Talordata 采集 Google 搜索结果
了解如何使用 Talordata SERP API 采集 Google 搜索结果,并用 Python 收集 organic results、titles、URLs、snippets、ranking positions,最后导出为 CSV。
Google 搜索结果很适合用于 SEO research、competitor tracking、market monitoring 和 AI workflows。
你可能需要采集:
-
organic result titles
-
URLs
-
snippets
-
ranking positions
-
domains
-
related questions
-
ads
-
local or shopping results
-
SERP features
你可以用 browser automation 直接抓 Google,但通常会遇到 page rendering、layout changes、blocks、CAPTCHA challenges 和 parsing logic 等问题。
Google SERP API 会让流程更干净。你只要传入 query、location、language 和 device,就能得到 structured search data,后续可以存入数据库、分析平台,或传给 AI workflow。
Talordata SERP API 用于获取 Google 和其他主要搜索引擎的 real-time structured search results,支持 JSON / HTML response formats 和 geo-targeted SERP data,也支持 Google、Bing、Yandex、DuckDuckGo。
我们要做什么?
这篇会建立一个小型 Python script:
Search query
→ Talordata SERP API
→ Google organic results
→ Clean title, URL, snippet, domain, position
→ Export results to CSV
适合用于:
-
SEO rank tracking
-
competitor monitoring
-
content research
-
AI agent source discovery
-
RAG workflows
-
market research dashboards
-
search result archiving
Step 1:准备 API Key
创建 Talordata 账号,并从 dashboard 获取 SERP API key。
Talordata 产品页说明,新用户可获得 1,000 free API responses,SERP API pricing 采用 response-based 方案。
把 API key 存成 environment variable。
export TALORDATA_API_KEY="your_api_key_here"
Windows PowerShell:
$env:TALORDATA_API_KEY="your_api_key_here"
安装 Python package:
pip install requests
Step 2:发送 Google SERP Request
Talordata examples 使用 SERP endpoint,并通过 engine、q、location、num 等参数处理搜索 workflow。Google SERP example 中也提到常见参数包含 q、gl、hl、device、num 和 start。
下面是一个基本 Python request:
import os
import requests
TALORDATA_API_KEY = os.getenv("TALORDATA_API_KEY")
TALORDATA_ENDPOINT = "https://api.talordata.com/v1/serp"
def search_google(query, location="United States", language="en", country="us"):
if not TALORDATA_API_KEY:
raise RuntimeError("Missing TALORDATA_API_KEY environment variable")
payload = {
"engine": "google",
"q": query,
"location": location,
"hl": language,
"gl": country,
"num": 10
}
headers = {
"Authorization": f"Bearer {TALORDATA_API_KEY}",
"Content-Type": "application/json"
}
response = requests.post(
TALORDATA_ENDPOINT,
json=payload,
headers=headers,
timeout=30
)
response.raise_for_status()
return response.json()
实际 endpoint 或 authentication method 可能取决于你的 Talordata dashboard 设置。如果 dashboard 显示不同 endpoint,请以账号中的 endpoint 为准。
Step 3:提取 Organic Results
Google SERP response 可能包含很多区块,例如 organic results、ads、related questions、maps、knowledge panels 等。
这篇先从 organic results 开始。
from urllib.parse import urlparse
def clean_text(value):
if not value:
return ""
return " ".join(str(value).split())
def get_domain(url):
if not url:
return ""
parsed = urlparse(url)
return parsed.netloc.replace("www.", "")
def extract_organic_results(serp_json, query):
organic_results = serp_json.get("organic_results", [])
rows = []
for index, item in enumerate(organic_results, start=1):
url = item.get("link") or item.get("url") or ""
rows.append({
"query": query,
"position": item.get("position") or item.get("rank") or index,
"title": clean_text(item.get("title")),
"url": url,
"domain": get_domain(url),
"snippet": clean_text(item.get("snippet") or item.get("description"))
})
return rows
Talordata 的 SEO use case page 将 organic search data 描述为包含 ranking positions、titles、URLs、snippets 和 ranking changes,这些也是多数 SEO workflow 最需要的字段。
Step 4:导出结果到 CSV
CSV 适合 quick checks、content research 和简单 rank tracking。
import csv
CSV_COLUMNS = [
"query",
"position",
"title",
"url",
"domain",
"snippet"
]
def export_to_csv(rows, filename="google_serp_results.csv"):
if not rows:
print("No organic results found.")
return
with open(filename, mode="w", newline="", encoding="utf-8") as file:
writer = csv.DictWriter(file, fieldnames=CSV_COLUMNS)
writer.writeheader()
writer.writerows(rows)
print(f"Exported {len(rows)} results to {filename}")
完整 Python 示例
import os
import csv
import requests
from urllib.parse import urlparse
TALORDATA_API_KEY = os.getenv("TALORDATA_API_KEY")
TALORDATA_ENDPOINT = "https://api.talordata.com/v1/serp"
CSV_COLUMNS = [
"query",
"position",
"title",
"url",
"domain",
"snippet"
]
def clean_text(value):
if not value:
return ""
return " ".join(str(value).split())
def get_domain(url):
if not url:
return ""
parsed = urlparse(url)
return parsed.netloc.replace("www.", "")
def search_google(query, location="United States", language="en", country="us"):
if not TALORDATA_API_KEY:
raise RuntimeError("Missing TALORDATA_API_KEY environment variable")
payload = {
"engine": "google",
"q": query,
"location": location,
"hl": language,
"gl": country,
"num": 10
}
headers = {
"Authorization": f"Bearer {TALORDATA_API_KEY}",
"Content-Type": "application/json"
}
response = requests.post(
TALORDATA_ENDPOINT,
json=payload,
headers=headers,
timeout=30
)
response.raise_for_status()
return response.json()
def extract_organic_results(serp_json, query):
organic_results = serp_json.get("organic_results", [])
rows = []
for index, item in enumerate(organic_results, start=1):
url = item.get("link") or item.get("url") or ""
rows.append({
"query": query,
"position": item.get("position") or item.get("rank") or index,
"title": clean_text(item.get("title")),
"url": url,
"domain": get_domain(url),
"snippet": clean_text(item.get("snippet") or item.get("description"))
})
return rows
def export_to_csv(rows, filename="google_serp_results.csv"):
if not rows:
print("No organic results found.")
return
with open(filename, mode="w", newline="", encoding="utf-8") as file:
writer = csv.DictWriter(file, fieldnames=CSV_COLUMNS)
writer.writeheader()
writer.writerows(rows)
print(f"Exported {len(rows)} results to {filename}")
if __name__ == "__main__":
query = "best project management software"
serp_json = search_google(
query=query,
location="United States",
language="en",
country="us"
)
rows = extract_organic_results(serp_json, query)
export_to_csv(rows)
执行后会得到:
google_serp_results.csv
Example Output
CSV 可能像这样:
query,position,title,url,domain,snippet
best project management software,1,Example Title,https://example.com,example.com,Short search snippet...
best project management software,2,Another Result,https://example.org,example.org,Another snippet...
接下来可以把结果发送到 database、Google Sheets、Notion、Slack 或 AI workflow。
常用参数
多数 Google SERP scraping workflow 会用到这些参数:
|
Parameter |
Meaning |
|
|
Search engine,例如 |
|
|
Search query |
|
|
Target location |
|
|
Country or market |
|
|
Language |
|
|
Desktop or mobile |
|
|
Number of results |
|
|
Pagination offset |
location、gl 和 hl 要特别注意。Google results 会因 country、city、language 和 device 有明显差异。
常见使用场景
SEO rank tracking
定期跑同一组 keywords,保存 ranking position、domain、title、URL 和 snippet,再比较变化。
Competitor monitoring
追踪哪些 competitor domains 出现在 top 10,也可以监测 title、snippet 和 landing page 的变化。
Content research
采集某个 topic 的 top-ranking pages,按 page type、domain、title pattern 和 search intent 分组。
AI and RAG workflows
把 Google SERP results 当成 discovery layer。SERP API 找到 current URLs 和 snippets,你的应用再抓取 full pages、切分 content,最后把选中的文字传给 LLM。
Talordata 产品页也将 AI search and agent integration 列为 real-time SERP data 的使用场景,包括 RAG pipelines 和 AI agents。
Best Practices
开发阶段保留 raw responses,方便 debug missing fields。
先 normalize 再存储,不要让 dashboard 直接依赖 raw API response。
保存 timestamps。Search results 会变,production 中每条 row 都应该有 collection time。
分离 discovery 和 page extraction。SERP data 告诉你什么正在排名,full-page extraction 才告诉你页面实际写了什么。
遵守合规要求。Talordata 说明其 SERP API 是围绕 publicly available search-result data 设计,但用户仍应确认自己的使用方式符合 applicable laws、search engine terms 和 internal compliance rules。
FAQ
可以用 Python 采集 Google Search results 吗?
可以。你可以用 Python 搭配 Google SERP API 发送 query,并获取 structured results。使用 Talordata 时,可以请求 Google results,然后提取 organic titles、URLs、snippets 和 ranking positions。
为什么不用手动抓取 Google?
手动抓取通常需要处理 page rendering、anti-bot checks、changing HTML 和 parsing。Talordata 返回 structured SERP data,让你把精力放在 analysis 和 automation 上。
Google SERP results 可以采集哪些数据?
常见数据包括 title、URL、snippet、ranking position、domain、ads、related questions、local results 和其他 SERP features,具体取决于 search type。
可以把 Google SERP API results 导出为 CSV 吗?
可以。收到 SERP API 的 JSON 后,可以 normalize organic results,然后用 Python 内置的 csv module 写入 CSV。
可以用于 AI agents 或 RAG 吗?
可以。Google SERP data 可以作为 AI agents 和 RAG workflows 的 live discovery layer。可以先用 SERP results 找到 current URLs,再根据需要抓取和处理页面内容。