
模型压缩四剑客:量化、剪枝、蒸馏、二值化
organic_results
、knowledge_graph
、local_results
、images_results
、video_results
等字段,无需 HTML 解析。engine=google_images
)、视频搜索(google_videos
)、新闻搜索(google_nws
)、本地商户(google_local
)、购物结果(google_shopping
) 等。location
、gl
、hl
参数模拟不同地区与语言的 SERP 结果,满足多市场需求。> 核心关键词:SerpAPI、结构化搜索数据、Google SERP API、分页抓取、JSON 解析、本地化搜索、搜索情报系统
安装 Python SDK:
pip install serpapi python-dotenv
配置 API 密钥
在项目根目录创建 .env
:
SERPAPI_KEY=你的_serpapi_key
基础调用示例:
from dotenv import load_dotenv
from serpapi import GoogleSearch
import os
load_dotenv()
params = {
"q": "coffee shops",
"engine": "google",
"location": "Austin, Texas, United States",
"api_key": os.getenv("SERPAPI_KEY")
}
search = GoogleSearch(params)
result = search.get_dict()
print(result["organic_results"])
参数 | 说明 | 建议值 |
---|---|---|
q | 搜索关键词,可含高级运算如 site: 、filetype: |
自定义业务需求 |
engine | 搜索类型:google 、google_images 、google_nws 、google_videos 、google_local 、google_shopping |
视场景而定 |
location | 物理位置,用于本地化检索,如 "New York, USA" |
城市/国家 |
gl | 搜索国别代码,如 "us" 、"cn" |
2-letter ISO |
hl | 界面语言,如 "en" 、"zh-CN" |
2-letter 或 BCP47 |
num | 每页结果数,最大 100 |
建议 50~100 |
start | 结果偏移量,分页常用 | start = page_index * num |
no_cache | 禁用缓存强制实时返回 | True |
output | 返回格式:json 或 html |
推荐 json |
> 分页抓取技巧:配合 num=100
与循环 start
,可高效拉取数千条结果。
organic = result.get("organic_results", [])
for idx, item in enumerate(organic, 1):
title = item.get("title")
link = item.get("link")
snippet = item.get("snippet")
position = item.get("position")
print(f"{idx}. {title} ({position})\nURL: {link}\n摘要: {snippet}\n")
import csv
with open("serp_data.csv", "w", newline="") as f:
writer = csv.writer(f)
writer.writerow(["pos","title","link","snippet"])
for i, item in enumerate(organic, 1):
writer.writerow([i, item["title"], item["link"], item.get("snippet")])
import mysql.connector
conn = mysql.connector.connect(host=..., user=..., password=..., database=...)
cursor = conn.cursor()
cursor.execute("""
CREATE TABLE IF NOT EXISTS serp_data(
position INT, title TEXT, link TEXT, snippet TEXT
)
""")
for idx, item in enumerate(organic,1):
cursor.execute(
"INSERT INTO serp_data(position,title,link,snippet) VALUES(%s,%s,%s,%s)",
(idx, item["title"], item["link"], item.get("snippet"))
)
conn.commit()
cursor.close()
conn.close()
图片搜索(Image Search)
params = {"q":"kittens", "engine":"google_images", "api_key":KEY}
images = GoogleSearch(params).get_dict().get("images_results", [])
视频搜索(Video Search)
params = {"q":"latest tech review", "engine":"google_videos", "api_key":KEY}
videos = GoogleSearch(params).get_dict().get("video_results", [])
新闻搜索(News Search)
params = {"q":"AI breakthroughs", "engine":"google_nws", "api_key":KEY}
news = GoogleSearch(params).get_dict().get("news_results", [])
本地商户(Local Search)
params = {"q":"coffee shops near me", "engine":"google_local", "location":"Seattle, USA", "api_key":KEY}
locals = GoogleSearch(params).get_dict().get("local_results", [])
购物结果(Shopping Search)
params = {"q":"wireless earbuds", "engine":"google_shopping", "api_key":KEY}
shopping = GoogleSearch(params).get_dict().get("shopping_results", [])
location/gl/hl
,分析各市场 SERP 差异。site:
、intitle:
、inurl:
实现精准筛选。429
错误时,加入指数退避与重试机制,保障稳定抓取。应用场景 | 实现方式 |
---|---|
关键词排名监控 | 定时拉取 top10 排名,生成历史趋势图 |
竞品分析 | 抓取竞品关键词 SERP 特征(Knowledge Graph) |
市场情报 | 新闻搜索与本地搜索,跟踪行业动态 |
电商价格监控 | 购物搜索结果价格与链接定期更新 |
AI 内容生成 | 批量获取摘要,辅助 GPT 模型生成内容 |
活动/展会信息抓取 | 事件搜索获取日期、地点、票务信息 |
本文系统覆盖了如何通过 SerpAPI 获取并解析 结构化搜索数据:
原文引自YouTube视频:https://www.youtube.com/watch?v=-H9yN_jl4FQ