一、核心功能概述
小红书未直接提供官方API用于获取关键词列表,但可通过以下方式间接实现:
- 商品搜索接口(
item_search
) :通过关键词搜索商品,提取商品标题中的关键词。 - 笔记搜索接口:通过关键词搜索笔记,分析笔记内容中的高频词汇。
- 第三方工具或爬虫:合法合规地获取关键词数据(需谨慎使用)。
二、官方API调用流程(以商品搜索为例)
1. 注册与授权
-
步骤:
- 注册小红书开放平台账号:访问小红书开放平台,完成实名认证。
- 创建应用:在开发者控制台创建应用,填写应用名称、描述等信息,选择"电商"或"数据分析"类目。
- 获取API密钥 :应用审核通过后,获取
App Key
和App Secret
。 - 申请接口权限 :在应用管理页面申请
smallredbook.item_search
接口权限。
2. 请求构造
-
接口地址 :
https://api.xiaohongshu.com/api/v1/search/items
-
必填参数:
参数名 类型 必填 说明 q
String 是 搜索关键词(如"女装") page
Int 否 页码,默认1 page_size
Int 否 每页数量,默认10,最大50 sort
String 否 排序方式(如 sales_qty
销量降序) -
示例请求:
makefilepython import requests app_key = "YOUR_APP_KEY" app_secret = "YOUR_APP_SECRET" url = "https://api.xiaohongshu.com/api/v1/search/items" params = { "q": "女装", "page": 1, "page_size": 10, "sort": "sales_qty" } # 生成签名(示例,实际需按官方规则) # 签名方法通常为HMAC-SHA256,需结合时间戳和非重复随机数 response = requests.get(url, params=params, headers={"Authorization": f"Bearer {app_key}"}) print(response.json())
3. 响应解析
-
返回JSON结构:
jsonjson { "data": { "items": [ { "item_id": "5f50ad1981d4c125e500a2d1", "title": "中国·创意设计感连衣裙", "price": 205.2, "sales": 14830, "pic_url": "https://qimg.xiaohongshu.com/..." } ] } }
-
关键词提取:
- 从商品标题(
title
字段)中提取关键词,例如"连衣裙"、"设计感"等。 - 结合多个商品标题,统计高频词汇作为关键词列表。
- 从商品标题(
三、注意事项
-
频率限制:
- 普通开发者QPS≤10,企业认证可提升至100。
- 每日调用上限50000次,建议购买"独立资源池"权限。
-
数据更新:
- 商品信息每5分钟更新一次,高频调用建议加缓存(如Redis,过期时间30分钟)。
-
错误处理:
-
常见错误码:
10001
:参数错误。20002
:商品不存在。30001
:权限不足。
-
需根据小红书开放平台-文档中心排查。
-
-
合规性:
- 禁止存储用户敏感信息(如买家评论中的手机号)。
- 图片需通过CDN代理引用,避免直接使用小红书源链接。
四、替代方案:笔记搜索接口
-
接口地址 :
https://api.xiaohongshu.com/api/v1/search/notes
-
参数:
q
:搜索关键词。page
、page_size
:分页参数。
-
响应:
- 包含笔记标题、内容、标签等,可提取标签(
tags
字段)作为关键词。
- 包含笔记标题、内容、标签等,可提取标签(
五、第三方工具与爬虫
-
第三方SDK:
- 小红书提供Java SDK,其他语言需自行封装请求。
-
爬虫方法:
- 合法合规地模拟浏览器请求,抓取搜索结果页面,提取关键词。
- 需遵守小红书《机器人协议》(
robots.txt
),避免高频访问。
六、示例代码(Python)
ini
python
import requests
from collections import Counter
def get_keywords(keyword, page=1, page_size=10):
url = "https://api.xiaohongshu.com/api/v1/search/items"
params = {
"q": keyword,
"page": page,
"page_size": page_size,
"sort": "sales_qty"
}
headers = {"Authorization": "Bearer YOUR_APP_KEY"}
response = requests.get(url, headers=headers, params=params)
data = response.json()
# 提取商品标题中的关键词
titles = [item["title"] for item in data.get("data", {}).get("items", [])]
words = [word for title in titles for word in title.split() if len(word) > 1]
return Counter(words).most_common(10)
# 使用示例
keywords = get_keywords("女装")
print("高频关键词:", keywords)
七、总结
小红书未直接提供关键词列表API,但可通过商品或笔记搜索接口间接获取。需注册开发者账号,申请接口权限,并遵守调用频率限制。建议结合官方API与数据分析方法,合法合规地提取关键词。