一、前期准备
- 注册开放平台账号
- 访问小红书开放平台,完成实名认证。
- 创建应用,选择"电商"或"数据分析"类目,获取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可高效获取用户作品列表,需严格遵守平台规则。建议优先使用官方接口,若需补充数据可结合爬虫(需合规)。开发过程中需关注接口文档更新,并定期检查调用权限状态。