一、接口获取与权限申请
- 注册与认证 访问小红书开放平台/万邦开放平台,注册开发者账号并完成企业认证。 在控制台创建应用,选择“商品搜索”相关接口权限(如item_search),提交申请并等待审核。
- 获取凭证 审核通过后,在应用详情页获取app_key(API密钥)和app_secret(加密密钥)。
二、接口调用方式
请求地址
bash
GET https://api.xiaohongshu.com/v1/search/items
请求头
json
{
"Content-Type": "application/json",
"Authorization": "Bearer {access_token}" # 需结合OAuth2.0获取
}
必填参数
参数名 | 类型 | 说明 |
---|---|---|
keyword | String | 搜索关键词(如“口红”) |
page_no | Int | 页码(默认1) |
page_size | Int | 每页数量(默认50,上限100) |
加密参数
参数名 | 类型 | 说明 |
---|---|---|
timestamp | Int | 当前时间戳(秒) |
sign | String | 签名(按规则生成) |
签名生成规则
- 参数按字典序排序,拼接为字符串:
key1=value1&key2=value2...+app_secret
- 使用MD5加密后转为大写。
三、请求示例(Python)
python
import requests
import hashlib
import time
def generate_sign(params, app_secret):
sorted_params = sorted(params.items())
sign_str = '&'.join([f"{k}={v}" for k, v in sorted_params]) + app_secret
return hashlib.md5(sign_str.encode('utf-8')).hexdigest().upper()
# 配置参数
app_key = "YOUR_APP_KEY"
app_secret = "YOUR_APP_SECRET"
keyword = "口红"
page_no = 1
page_size = 10
params = {
"app_key": app_key,
"keyword": keyword,
"page_no": page_no,
"page_size": page_size,
"timestamp": int(time.time())
}
# 生成签名
params["sign"] = generate_sign(params, app_secret)
# 发送请求
url = "https://api.xiaohongshu.com/v1/search/items"
response = requests.get(url, params=params)
# 处理响应
if response.status_code == 200:
data = response.json()
if data.get("code") == 200:
for item in data["data"]["items"]:
print(f"商品ID: {item['item_id']}, 标题: {item['title']}, 价格: ¥{item['price']}")
else:
print(f"API错误: {data.get('message')}")
else:
print(f"请求失败,状态码: {response.status_code}")
四、返回数据结构(JSON)
json
{
"code": 200,
"message": "success",
"data": {
"items": [
{
"item_id": "64f6f55d000000001d015a5a",
"title": "【新品】XX品牌丝绒口红 持久不脱色",
"price": 199.00,
"images": [
"https://sns-img-qc.xhscdn.com/image1.jpg",
"https://sns-img-qc.xhscdn.com/image2.jpg"
],
"sales": 1200,
"shop": {
"shop_id": "987654321",
"name": "XX旗舰店",
"rating": 4.9
}
}
],
"pagination": {
"total": 150,
"page_no": 1,
"page_size": 10
}
}
}
五、注意事项
- 频率限制 默认每分钟100次,超限需联系平台申请提额。
- 分页处理 通过page_no和page_size遍历全部结果,例如: arduino 体验AI代码助手 代码解读复制代码python for page in range(1, total_pages + 1): params["page_no"] = page # 发送请求...
- 数据合规 禁止爬取用户隐私数据(如手机号、地址)。 遵守《网络安全法》和《个人信息保护法》。
- 错误排查 401错误:检查app_key或签名是否正确。 404错误:确认接口地址无误。 500错误:稍后重试或联系技术支持。
六、扩展功能
- 筛选排序:部分接口支持按价格、销量排序(需查阅文档确认参数)。
- 类目过滤:通过
category_id
指定商品类目(如美妆、服饰)。
如需高级功能(如实时库存查询),需联系小红书商务团队定制接口。