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,再根據需要抓取和處理頁面內容。