【立即体验】小红书实时数据API
想要小红书数据,但你还在手动复制粘贴?
“运营同事每天花2小时刷小红书,手动记录竞品笔记数据,月底汇总成Excel——结果发现记错了数据,又得重来一遍。”
如果你遇到过类似的情况,那你需要的是一个程序化的数据接口,而不是多招一个人。
小红书实时数据API支持从2019年至今的全量公开数据查询,分钟级更新。本文教你如何用Java SDK快速接入,从配置到跑通第一个请求。
Key Takeaways
– 典枢数据API通过Java SDK调用,不支持直接curl请求
– 每次调用2元,最多返回100条数据;一次拿到1000条需要分页调10次,共20元
– 支持2019年至今的小红书全量数据,分钟级更新
– SDK安装只需三步:下载包→解压到Maven仓库→pom引入依赖
– 返回字段完整:笔记标题、正文、互动数据、用户信息、多媒体等
接入前的准备
定价说明
在开始之前,先搞清楚这个API的计费方式,避免踩坑:
| 计费项 | 说明 |
|---|---|
| 每次调用 | 2元 |
| 每次最多返回 | 100条数据 |
| 需要1000条怎么办 | 分页调10次,总成本20元 |
| 不足100条 | 同样按1次计费(2元),建议优化关键词 |
⚠️ 常见误解:不是”单条0.02元”,而是”每次2元,最多拿100条”。如果你需要1000条,就是10次×2元=20元。单条最低0.02元是在”每次都能拿满100条”的理想情况下。
前置条件
| 条件 | 说明 |
|---|---|
| Java开发环境 | JDK 8+ |
| Maven | 3.x版本 |
| appCode | 在典枢数据基本信息页面获取 |
| apiCode | 在API详情页获取 |
第一步:安装SDK
1.1 下载SDK包
从典枢数据平台下载 dianshu-api-sdk 包。
1.2 安装到本地Maven仓库
将下载的 tech.zip 解压,把 tech 目录放入Maven本地仓库(通常在 ~/.m2/repository/ 下)。
1.3 引入依赖
在项目的 pom.xml 中添加:
<dependency>
<groupId>tech.yeez</groupId>
<artifactId>dianshu-api-sdk</artifactId>
<version>1.0-SNAPSHOT</version>
</dependency>
第二步:编写调用代码
2.1 最简单的调用示例
import tech.yeez.dianshu.sdk.DSAPIClient;
import tech.yeez.dianshu.sdk.model.*;
import java.util.ArrayList;
import java.util.List;
public class Test {
public static void main(String[] args) {
// 初始化上下文,设置appCode(基本信息页面获取)
DSAPIContext context = new DSAPIContext("你的appCode");
// 设置apiCode(API详情页可查看)
String apiCode = "Y5N3SsiHvt2XwtDeb75MqYFtDcTAvjGK3NF8d1YeDsF";
DSAPIClient apiClient = new DSAPIClient(apiCode, context);
PostRequestDTO dto = new PostRequestDTO();
List<ParamInfoDTO> bodyParams = new ArrayList<>();
bodyParams.add(new ParamInfoDTO("startTime", "1779381079"));
bodyParams.add(new ParamInfoDTO("endTime", "1779427884"));
bodyParams.add(new ParamInfoDTO("keyword", "护肤"));
bodyParams.add(new ParamInfoDTO("page", "1"));
dto.setBodyParams(bodyParams);
String result = apiClient.doPost(dto);
System.out.println("接口返回结果:" + result);
}
}
2.2 参数说明
| 参数 | 类型 | 说明 | 建议 |
|---|---|---|---|
keyword |
String | 搜索关键词,最多100字符 | 使用宽泛关键词 |
startTime |
String | 开始时间,Unix秒级时间戳 | 单次最多7天范围 |
endTime |
String | 结束时间,Unix秒级时间戳 | 建议按周分段 |
page |
String | 页码,从1开始 | 每页最多100条 |
2.3 获取多条数据(分页示例)
如果需要获取超过100条的数据,可以循环分页调用:
public class BatchFetch {
public static void main(String[] args) {
DSAPIContext context = new DSAPIContext("你的appCode");
String apiCode = "Y5N3SsiHvt2XwtDeb75MqYFtDcTAvjGK3NF8d1YeDsF";
DSAPIClient apiClient = new DSAPIClient(apiCode, context);
// 需要获取500条数据,分5页,每页100条
// 成本:5次 × 2元 = 10元
for (int page = 1; page <= 5; page++) {
PostRequestDTO dto = new PostRequestDTO();
List<ParamInfoDTO> bodyParams = new ArrayList<>();
bodyParams.add(new ParamInfoDTO("keyword", "护肤"));
bodyParams.add(new ParamInfoDTO("startTime", "1776643200"));
bodyParams.add(new ParamInfoDTO("endTime", "1779244800"));
bodyParams.add(new ParamInfoDTO("page", String.valueOf(page)));
dto.setBodyParams(bodyParams);
String result = apiClient.doPost(dto);
System.out.println("第" + page + "页结果:" + result);
}
System.out.println("共获取500条数据,总成本10元");
}
}
返回数据字段说明
📄 基本信息
| 字段 | 类型 | 说明 |
|---|---|---|
| title | String | 笔记标题 |
| content | String | 笔记正文 |
| mid | String | 文章系统ID |
| url | String | 文章链接 |
| uuid | String | 文章唯一ID |
| wtype | Integer | 文章类型(1原创/2转发) |
📊 互动指标
| 字段 | 类型 | 说明 |
|---|---|---|
| like_count | Integer | 点赞数 |
| collection_count | Integer | 收藏数 |
| reply_count | Integer | 评论数 |
| share_count | Integer | 分享数 |
| visit_count | Integer | 播放量/阅读数 |
👤 用户信息
| 字段 | 类型 | 说明 |
|---|---|---|
| name | String | 用户名 |
| nickname | String | 用户昵称 |
| followers_count | Integer | 粉丝数 |
| friends_count | Integer | 关注数 |
| gender | String | 性别 |
| verified | Integer | 是否认证 |
| verified_type | Integer | 认证类型 |
📺 多媒体
| 字段 | 类型 | 说明 |
|---|---|---|
| pic_urls | Array | 图片链接列表 |
| video_urls | Array | 视频链接列表 |
| face_img | String | 封面图URL |
| duration | Integer | 视频长度(秒) |
常见异常处理
| 状态码 | 含义 | 处理方式 |
|---|---|---|
| 400 | 参数错误 | 检查请求参数 |
| 401 | 认证失败 | 确认appCode |
| 403 | 权限不足 | 检查apiCode权限 |
| 429 | 请求过频(QPS:1) | 实现指数退避重试 |
| 500 | 服务端异常 | 稍后重试或联系支持 |
调用成本测算
不同场景下的成本预算:
| 场景 | 数据量 | 调用次数 | 总成本 |
|---|---|---|---|
| 简单关键词搜索 | 1页(最多100条) | 1次 | 2元 |
| 一周数据监控 | 5页(最多500条) | 5次 | 10元 |
| 月度趋势分析 | 20页(最多2000条) | 20次 | 40元 |
| 竞品全面调研 | 50页(最多5000条) | 50次 | 100元 |
根据 Stack Overflow 的开发者调查,超过80%的开发者更倾向于通过SDK而非直接调用REST API来集成数据服务——这也是为什么典枢数据提供Java SDK而非简单的curl接口。
常见问题
Q1:SDK支持其他语言吗?
目前提供Java SDK。如果是其他技术栈,可以参考SDK源码自行实现调用逻辑。
Q2:每次调用拿不满100条怎么办?
如果关键词较严格,可能不足100条。建议:
– 使用更宽泛的关键词
– 扩大时间范围(但不超过7天)
– 关键词用英文逗号组合扩大覆盖
Q3:需要大量数据,成本太高怎么办?
根据 Gartner 的建议,可以:
– 只采集与分析目标直接相关的关键词
– 使用抽样策略(如每周采集1-2次而非每天)
– 优先采集互动数据高的内容
Q4:数据多久更新一次?
分钟级更新。最新发布的小红书笔记可以很快通过SDK查询到。
总结
接入小红书实时数据API只需要三步:下载SDK → 配置Maven → 写几行Java代码。每次2元,最多拿100条数据,1000条也只需20元。
下一步行动:
1. 在典枢数据获取你的appCode和apiCode
2. 下载并安装SDK
3. 运行第一个示例代码
【立即体验】小红书实时数据API
参考资料:
– Stack Overflow Developer Survey 2024
– Gartner – Data Integration Best Practices
– Maven官方文档 – 依赖管理