小红书按关键词搜索商品列表API接口操作流程
一、接口获取与权限申请
- 注册与认证
- 访问小红书开放平台/万邦开放平台,注册开发者账号并完成企业认证。
- 在控制台创建应用,选择“商品搜索”相关接口权限(如
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
遍历全部结果,例如:python
for page in range(1, total_pages + 1):
params["page_no"] = page
# 发送请求...
- 通过
- 数据合规
- 禁止爬取用户隐私数据(如手机号、地址)。
- 遵守《网络安全法》和《个人信息保护法》。
- 错误排查
- 401错误:检查
app_key
或签名是否正确。 - 404错误:确认接口地址无误。
- 500错误:稍后重试或联系技术支持。
- 401错误:检查
六、扩展功能
- 筛选排序:部分接口支持按价格、销量排序(需查阅文档确认参数)。
- 类目过滤:通过
category_id
指定商品类目(如美妆、服饰)。
如需高级功能(如实时库存查询),需联系小红书商务团队定制接口。