做SEO的人都知道,百度下拉框里的联想词是关键词挖掘的金矿——用户真实搜过的词、搜索量大、竞争度还没完全暴露。问题是手动一个个敲词根太慢了,敲50个词根手都麻了。其实百度有两个免费的下拉词接口,直接HTTP请求就能拿到数据,一个返回10条,一个能返回更多带分类的推荐词,配合Python脚本一天能挖几千个长尾词。
这篇文章把两个接口的地址、参数、返回格式、调用限制全说清楚,再给一段能直接跑的Python批量采集代码,拿到就能用。
一、百度下拉词的两个免费接口,一个简洁一个更全
百度对外暴露了两个下拉词接口,都不用API Key,直接GET请求就返回数据:
suggestion.baidu.com —— 简洁版,10条联想词
这是百度最老的联想词接口,用的是JSONP格式。调用方式非常简单,直接在浏览器地址栏敲:
https://suggestion.baidu.com/su?wd=外贸建站&cb=test
返回结果长这样:
q: "外贸建站",
p: false,
s: [
"外贸建站公司",
"外贸建站平台",
"外贸建站哪个平台好",
"外贸建站教程",
"外贸建站多少钱",
"外贸建站推广",
"外贸建站需要多少钱",
"外贸建站系统",
"外贸建站用什么系统好",
"外贸建站模板"
]
})
参数说明:
| wd | 要查的词根,中文需URL编码(encodeURIComponent) |
| cb | JSONP回调函数名,随便写,如 cb=test |
这个接口的优点是轻量、响应快、不挑User-Agent。缺点也很明显:固定只返回10条,而且不区分PC端和移动端,数据维度比较单一。
sugrec —— 完整版,返回更多条,带分类标签
sugrec是百度搜索框现在实际在用的接口,返回的是标准JSON(不需要回调函数),数据更丰富。调用地址:

https://www.baidu.com/sugrec?pre=1&p=3&ie=utf-8&json=1&prod=pc&from=pc_web&wd=外贸建站
返回数据:
"q": "外贸建站",
"p": false,
"g": [
{"type": "sug", "sa": "s_1", "q": "外贸建站公司"},
{"type": "sug", "sa": "s_2", "q": "外贸建站平台"},
// ... 更多联想词
]
}
sugrec接口的关键参数:
| pre | 固定填 1,表示预测搜索 |
| p | 返回结果数量档位,3表示最多(实测一般返回10-15条) |
| ie | 编码,固定 utf-8 |
| json | 填 1 返回JSON格式,不填默认JSONP |
| prod | 设备类型:pc 或 wise(移动端),移动端的下拉词和PC不完全一样 |
| from | 来源标识,pc_web 或 wise_web |
| wd | 要查的词根,同样需要URL编码 |
二、两个接口怎么选?看你的使用场景
如果你只是偶尔查几个词的下拉词,用suggestion就够了,浏览器地址栏敲进去就能看。如果是做站群关键词挖掘、批量跑几千个词根,用sugrec,PC和移动端各跑一遍,数据量大一倍。
三、Python批量采集脚本,拿来就能跑
下面这段代码可以直接用。逻辑很简单:读取一个词根列表txt文件 → 逐个请求sugrec接口 → 解析返回的下拉词 → 去重后写入CSV。做了三个关键处理:URL编码中文词根、请求间隔防封、异常重试。
import time
import csv
from urllib.parse import quote
# 读取词根列表(一行一个词根)
with open('cigen.txt', 'r', encoding='utf-8') as f:
cigen_list = [line.strip() for line in f if line.strip()]
all_keywords = set() # 用set自动去重
for i, word in enumerate(cigen_list):
try:
url = (
f"https://www.baidu.com/sugrec?pre=1&p=3&ie=utf-8&json=1"
f"&prod=pc&from=pc_web&wd={quote(word)}"
)
headers = {
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36',
'Referer': 'https://www.baidu.com/'
}
resp = requests.get(url, headers=headers, timeout=10)
data = resp.json()
# 提取g数组中的联想词
if 'g' in data:
for item in data['g']:
if 'q' in item:
all_keywords.add(item['q'])
print(f"[{i+1}/{len(cigen_list)}] {word} → 获取 {len(data.get('g',[]))} 条")
except Exception as e:
print(f"[{i+1}] {word} 请求失败: {e}")
# 请求间隔,别太快,太快百度会弹验证码
time.sleep(0.5)
# 写入CSV
with open('xialaci_result.csv', 'w', newline='', encoding='utf-8-sig') as f:
writer = csv.writer(f)
writer.writerow(['关键词'])
for kw in sorted(all_keywords):
writer.writerow([kw])
print(f"\n完成!共采集 {len(all_keywords)} 个不重复下拉词")
print("结果已保存到 xialaci_result.csv")
用法:
- 新建一个
cigen.txt,每行写一个词根(比如:外贸建站、独立站、SEO优化...) - 把脚本和txt放同一个目录,运行
pip install requests后执行 - 结果自动写入
xialaci_result.csv,Excel直接打开
四、想把下拉词挖透?光跑一级不够,要跑三级深度挖掘
很多人拿到第一批下拉词就觉得够了。实际上,下拉词可以像挖矿一样一层层往下挖——把第一轮采集到的下拉词当成新的词根,再跑一遍接口,这样能挖到更长的长尾词。
三级挖掘示例(词根:独立站)
第一级(词根→一级下拉词):
独立站 → 独立站建站平台、独立站是什么意思、独立站怎么做、独立站推广...
第二级(一级词→二级下拉词):
独立站建站平台 → 独立站建站平台哪个好、shopify建独立站平台、免费独立站建站平台...
第三级(二级词→三级下拉词):
shopify建独立站平台 → shopify建独立站平台费用、shopify建独立站平台教程、shopify和wordpress建独立站哪个好...
100个词根跑一级能拿到约1200个词,这些词跑二级能再扩到8000-10000个,三级跑完能到3-5万个长尾词。但这需要控制好请求频率,不然中间被封了就全白跑了。
升级版脚本加入递归逻辑:
if depth > max_depth:
return
new_words = set()
for word in word_list:
sugs = fetch_suggestions(word) # 调用接口获取下拉词
for s in sugs:
if s not in all_visited: # 已采集过的跳过
all_visited.add(s)
new_words.add(s)
time.sleep(0.5)
dig_keywords(new_words, depth+1, max_depth) # 递归下一层
五、除了百度,其他搜索引擎的下拉词接口也别浪费
做外贸站群的话,光挖百度的下拉词不够。不同搜索引擎的用户画像和搜索习惯不一样,多平台采集交叉比对,能找到更多高质量长尾词。
Google的下拉词接口对做外贸的人尤其有用——可以指定 hl 参数切换语言,比如 hl=en 拿英文联想词,hl=de 拿德文联想词,直接看到目标市场用户怎么搜的。
六、采回来的下拉词怎么用?四个实用场景
下拉词采回来了,堆在Excel里不叫价值。下面是四个直接能用的方向:
1. 文章标题库
下拉词本身就是用户的真实搜索,稍加改造就是高质量文章标题。比如"独立站怎么做推广"→ 直接写成"独立站推广的5种方式,从免费到付费全讲清楚"
2. 栏目规划
把下拉词按语义聚类,能看出用户对这个话题最关心哪几个方向。比如"独立站"的下拉词集中在建站、推广、费用、平台对比四个方向,这四个方向就是网站的四个核心栏目
3. FAQ页面素材

下拉词里大量是疑问句格式的:"XX是什么意思""XX怎么做""XX多少钱"。把这些直接做成FAQ页面,天然匹配用户搜索意图,Google很容易给Featured Snippet
4. 竞品关键词监控
定期跑品牌词+竞品词的下拉数据,能发现竞品最近在推什么方向、用户对竞品最大的疑问是什么,这些都是内容策略的信号
七、市面上那些收费的下拉词工具,底层用的就是这两个接口
5118、爱站、站长工具等平台的下拉词查询功能,本质上就是封装了sugrec和suggestion这两个接口,加上去重、分类、三级挖掘的自动化流程,再套个界面卖给你。如果你自己能写脚本,这笔钱完全能省下来。
当然,收费工具有它的价值——代理IP池、反封策略、可视化分析、历史数据对比,这些自建成本不低。如果你的需求是每天挖几千个词、深度不大,自己写脚本完全够。如果是日挖几万词、需要跨平台对比、要做趋势分析,付费工具更省心。
八、再说几个容易踩的坑
坑1:URL编码没做对
中文关键词必须用 encodeURIComponent 或 Python 的 quote() 编码。直接用中文拼到URL里,接口要么返回空、要么乱码。最常见的报错就是忘了编码。
坑2:suggestion接口用fetch请求被CORS拦
suggestion.baidu.com 返回的是JSONP格式,如果前端用fetch/axios直接请求会被跨域策略拦。后端用requests.get没问题,前端要用JSONP方式或者后端做代理转发。
坑3:请求太快被限流
sleep设0.5秒只是保守值。如果你的IP质量不好或者百度当天风控收紧,可能0.5秒也会触发验证码。遇到这种情况别硬刚,停半小时再跑,或者换IP。
坑4:sugrec接口偶尔返回空
有些冷门词根sugrec不返回任何联想词(g数组为空),这不是接口坏了,是真的没有下拉数据。脚本里要对空返回做判断,别当成报错。
坑5:PC端和移动端数据不互通
很多人以为sugrec的prod参数只是改了个标识,数据一样。实际上PC端和移动端的下拉词差异很大,移动端更长尾、更口语化。两个prod都跑一遍,词库才完整。
九、最后说一句
百度下拉词的免费接口一直都在那里,suggestion.baidu.com 和 sugrec 两个地址复制粘贴就能用。把词根列表整理好,Python脚本跑起来,三级递归挖下去,一个100词的词根表能扩出几千个长尾词。这些词做标题、做栏目、做FAQ,比拍脑袋想的词靠谱得多——因为每个词都是用户真实搜过的。
唯一要注意的就是频率控制。sleep设0.5秒、量大加代理IP、遇到验证码别硬刚。接口本身不收钱,乱来被封了IP才叫亏。
如果不想自己写代码折腾,UC建站系统内置了多引擎下拉词采集模块,PC+移动双端+三级递归自动跑,词根输进去,几分钟后CSV直接导出,拿来就能用。
