首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >如何使用 Python 调用小红书笔记评论 API 时进行数据可视化?

如何使用 Python 调用小红书笔记评论 API 时进行数据可视化?

原创
作者头像
Anzexi58
发布2026-04-13 17:19:02
发布2026-04-13 17:19:02
690
举报
文章被收录于专栏:API接口开发API接口开发

下面给你一套最简单、直接能用的小红书评论数据可视化方案,用 Python + 通用库 matplotlib / pyecharts 实现,不需要复杂配置。

一、整体思路

  1. 调用小红书笔记评论 API 获取 JSON 数据
  2. 解析出:点赞数、评论时间、用户名、评论内容长度等
  3. 用图表展示:
    • 评论点赞分布
    • 评论时间趋势
    • 评论长度统计
    • 热门评论词云(可选)

二、安装依赖

bash

运行

代码语言:javascript
复制
pip install requests matplotlib pandas

三、完整代码(调用 API + 解析 + 可视化)

python

运行

代码语言:javascript
复制
import requests
import matplotlib.pyplot as plt
import time

# ===================== 配置 =====================
ACCESS_TOKEN = "你的token"
NOTE_ID = "笔记ID"
# =================================================

def get_xhs_comments(note_id, cursor=""):
    """获取评论"""
    url = f"https://api.xiaohongshu.com/v2/notes/{note_id}/comments"
    headers = {"Authorization": f"Bearer {ACCESS_TOKEN}"}
    params = {"cursor": cursor, "page_size": 50, "sort": "time"}
    resp = requests.get(url, headers=headers, params=params)
    return resp.json()

def parse_comments(json_data):
    """解析评论数据"""
    comments = json_data.get("data", {}).get("comments", [])
    result = []
    for c in comments:
        result.append({
            "like": c.get("like_count", 0),
            "time": c.get("create_time", 0),
            "content_len": len(c.get("content", "")),
            "username": c.get("user", {}).get("nickname", "")
        })
    return result

# 获取并解析
data = get_xhs_comments(NOTE_ID)
comment_list = parse_comments(data)

# 提取数据用于画图
likes = [c["like"] for c in comment_list]
times = [c["time"] for c in comment_list]
lengths = [c["content_len"] for c in comment_list]

# ===================== 可视化 =====================
plt.rcParams["font.sans-serif"] = ["SimHei"]  # 显示中文
plt.rcParams["axes.unicode_minus"] = False

# 1. 点赞数分布柱状图
plt.figure(figsize=(12,5))
plt.subplot(1,3,1)
plt.bar(range(len(likes)), likes, color="#ff5c5c")
plt.title("评论点赞数")
plt.xlabel("评论序号")
plt.ylabel("点赞数")

# 2. 评论长度分布
plt.subplot(1,3,2)
plt.hist(lengths, bins=10, color="#5ac8fa")
plt.title("评论长度分布")
plt.xlabel("字数")
plt.ylabel("条数")

# 3. 评论时间折线(时间戳转时间)
time_str = [time.strftime("%m-%d %H:%M", time.localtime(t)) for t in times]
plt.subplot(1,3,3)
plt.plot(time_str, likes, marker="o", color="#34c759")
plt.title("点赞-时间趋势")
plt.xticks(rotation=45)

plt.tight_layout()
plt.show()

四、你会得到三张图

  1. 评论点赞数柱状图:看出哪些评论最火
  2. 评论长度分布图:用户爱发短评还是长评
  3. 评论时间 - 点赞趋势图:互动热度随时间变化

五、更高级可视化(词云)

如果你想看评论关键词云,可以用:

bash

运行

代码语言:javascript
复制
pip install wordcloud jieba

python

运行

代码语言:javascript
复制
from wordcloud import WordCloud
import jieba

# 拼接所有评论内容
contents = [c.get("content", "") for c in json_data["data"]["comments"]]
text = " ".join(contents)
words = " ".join(jieba.lcut(text))

wc = WordCloud(
    font_path="msyh.ttc",  # Windows
    # font_path="PingFang.ttc"  # Mac
    width=800, height=400, background_color="white"
)
wc.generate(words)
wc.to_file("xhs_wordcloud.png")

plt.imshow(wc)
plt.axis("off")
plt.show()

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 一、整体思路
  • 二、安装依赖
  • 三、完整代码(调用 API + 解析 + 可视化)
  • 四、你会得到三张图
  • 五、更高级可视化(词云)
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档