一、前期准备
- 注册开放平台账号
- 访问小红书开放平台,完成实名认证。
- 创建应用,选择"电商"或"数据分析"类目,获取App Key 和App Secret(密钥需妥善保管)。
- 申请接口权限
- 在开发者控制台申请
item_search_shop_video(用户作品列表)或item_get_video(笔记详情)接口权限,审核通过后生效。
- 在开发者控制台申请
二、API调用流程
1. 接口地址与参数
- 用户作品列表接口 :
GET https://api.xiaohongshu.com/api/v1/search/shop_video
必填参数 :user_id:用户唯一标识(通过用户主页URL解析)page:分页页码(默认1)page_size:每页数量(最大50)sort:排序方式(如create_time按时间排序)
2. 请求示例(Python)
python
|--------------------------------------------------------------------------------|
| import requests |
| |
| app_key = "YOUR_APP_KEY" |
| app_secret = "YOUR_APP_SECRET" |
| user_id = "目标用户ID" |
| |
| url = "https://api.xiaohongshu.com/api/v1/search/shop_video" |
| params = { |
| "user_id": user_id, |
| "page": 1, |
| "page_size": 30, |
| "sort": "create_time" |
| } |
| headers = {"Authorization": f"Bearer {app_key}"} |
| |
| response = requests.get(url, headers=headers, params=params) |
| if response.status_code == 200: |
| data = response.json() |
| # 解析作品列表 |
| for item in data["data"]["items"]: |
| print(f"作品ID: {item['num_iid']}, 标题: {item['title']}, 点赞数: {item['likes']}") |
| else: |
| print(f"请求失败,状态码: {response.status_code}") |
3. 响应数据结构
json
|------------------------------------------|
| { |
| "code": 200, |
| "message": "success", |
| "data": { |
| "items": [ |
| { |
| "num_iid": "作品ID", |
| "title": "作品标题", |
| "likes": 150, |
| "comments": 20, |
| "create_time": "2025-01-01T00:00:00Z", |
| "detail_url": "作品链接" |
| } |
| ], |
| "pagination": { |
| "current_page": 1, |
| "total_pages": 5 |
| } |
| } |
| } |
三、关键注意事项
- 频率限制
- 普通开发者QPS≤10,企业认证后可提升至100,每日调用上限50,000次。
- 高频调用建议使用缓存(如Redis,过期时间30分钟)。
- 合规性要求
- 禁止存储用户敏感信息(如手机号、地址)。
- 图片需通过CDN代理引用,避免直接使用小红书源链接。
- 遵守《小红书机器人协议》(robots.txt),避免高频访问。
- 错误处理
- 错误码示例:
10001:参数错误30001:权限不足
- 需根据小红书API文档页面排查错误。
- 错误码示例:
四、替代方案(非官方)
若官方API无法满足需求,可通过合法爬虫模拟浏览器请求,但需注意:
- 使用
requests或selenium库,设置合理请求间隔(如2秒/次)。 - 仅抓取公开数据,避免侵入用户隐私。
- 示例代码(爬虫):
python
|--------------------------------------------------------------|
| import requests |
| from bs4 import BeautifulSoup |
| |
| url = "https://www.xiaohongshu.com/user/profile/{user_id}" |
| headers = {"User-Agent": "Mozilla/5.0"} |
| response = requests.get(url, headers=headers) |
| soup = BeautifulSoup(response.text, 'html.parser') |
| # 解析作品列表(需根据页面结构调整) |
五、总结
通过小红书开放平台API可高效获取用户作品列表,需严格遵守平台规则。建议优先使用官方接口,若需补充数据可结合爬虫(需合规)。开发过程中需关注接口文档更新,并定期检查调用权限状态。