问答

投放结束后,怎么批量收集小红书笔记的点赞、收藏和评论数?

简短回答

把笔记链接或 ID 列成清单,逐篇调用 okdata 的小红书笔记详情接口,每篇 $0.02;每个博主再调一次博主信息($0.02)拿粉丝数。30 篇笔记在第 1、7、30 天各查一次,加上博主信息,共 $2.40。

投放结束了:30 个博主,30 篇笔记,品牌方要一份复盘,每篇的点赞、收藏、评论、分享,再加每个博主的互动率。通常是有人拿着手机一篇篇点开,把数字敲进表格,一周后再来一遍。写个脚本,一分钟就做完,还能把快照存下来。

用到的接口

  • 小红书笔记详情,按 id 或 url(xhslink.com 短链也行):点赞、收藏(favorites)、评论、分享、发布时间、标题和作者用户 ID。
  • 小红书博主信息,每个博主一次:粉丝数,用来算每粉丝互动。

费用

报表 调用次数 费用
30 篇笔记,查一次 30 $0.60
加 30 个博主信息 60 {{cost:xiaohongshu.notes.get30+xiaohongshu.users.get30}}
30 篇在第 1、7、30 天各查一次,博主查一次 120 {{cost:xiaohongshu.notes.get90+xiaohongshu.users.get30}}

脚本

import csv, os, requests, datetime as dt

API = "https://api.okdata.online"
HEAD = {"Authorization": f"Bearer {os.environ['OKDATA_API_KEY']}"}
links = ["http://xhslink.com/a/AbCdEf", "https://www.xiaohongshu.com/explore/6650a1b2000000001e00abcd"]

with open(f"campaign-{dt.date.today()}.csv", "w", newline="", encoding="utf-8-sig") as f:
    w = csv.writer(f)
    w.writerow(["note_id", "author_id", "likes", "saves", "comments", "shares", "followers"])
    for link in links:
        n = requests.get(API + "/v1/xiaohongshu/notes/get", headers=HEAD, params={"url": link}, timeout=60).json()["data"]["item"]
        u = requests.get(API + "/v1/xiaohongshu/users/get", headers=HEAD, params={"id": n["author"]["id"]}, timeout=60).json()["data"]["item"]
        m = n["metrics"]
        w.writerow([n["id"], n["author"]["id"], m["likes"], m["favorites"], m["comments"], m["shares"], u["followers"]])

同一个博主出现两次时,把他的信息缓存起来,别重复调用。

公开 API 给不了的

  • **阅读量和曝光。**小红书不公开浏览量,metrics.views 为 null。阅读、曝光以及自然流量和付费流量的拆分,在品牌方的蒲公英或广告报表里。
  • **被删的笔记。**博主删掉的笔记返回 not_found(不扣费)。之前的快照要留好,那就是笔记发布过的证据。
  • **历史数据。**数字都是调用那一刻的。每次快照都带上日期存下来。

其他做法

如果投放是在蒲公英下的单,订单报表里有每篇笔记的阅读和人群数据,应该作为主要来源;公开数据可以拿来交叉核对,也能覆盖不在蒲公英里的笔记。如果想把竞品的投放也一起定期复盘,可以看竞品监测方案。

更新于