一、核心功能概述
小红书未直接提供官方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
销量降序)示例请求:
python
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结构:
json
{
"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)
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与数据分析方法,合法合规地提取关键词。