问答

小红书分享链接(xhslink.com)怎么解析成笔记数据?

简短回答

把链接作为 url 传给 okdata 的小红书笔记详情接口,xhslink.com 短链会自动解析,每篇 $0.02,返回笔记 ID、标题、全文、图片、点赞、收藏和评论数。注意先从分享口令里把链接提取出来,接口接收的是链接,不是整段文字。

博主交稿时发来的往往是 App 里的分享口令:一段文字,带标题、表情,中间夹着一个 http://xhslink.com/... 链接。你想把每篇整理成一行,有笔记 ID,也有当天的数据。短链要经过小红书跳转,很多下载工具在这一步就失败了,尤其是新的 xhslink.com/o/... 移动端链接,或者跳转时 Cookie 没带过去。笔记详情接口直接接受短链,返回笔记 ID 和各项数据。

一个链接一次调用

小红书笔记详情的 url 参数可以是:

  • xhslink.com 短链,路径不限;
  • xiaohongshu.com/explore/<id> 或 /discovery/item/<id> 网页链接,带不带后面的查询参数都行。

短链由我们这边解析。返回里有笔记 id(存下来,之后可以直接用 ID 调)、标题、全文、图片链接、发布时间、点赞、收藏、评论和分享数、话题标签和作者。

费用

链接数 调用次数 费用
1 1 $0.02
40 篇投放笔记 40 $0.80
40 篇,每周查一次,查 8 周 320 $6.40

从分享口令到数据

import os, re, requests

share = "【某品牌新品】超好用! http://xhslink.com/a/AbCdEf 复制本条信息,打开小红书App查看"
link = re.search(r"https?://[^\s,,]+", share).group(0)

r = requests.get(
    "https://api.okdata.online/v1/xiaohongshu/notes/get",
    headers={"Authorization": f"Bearer {os.environ['OKDATA_API_KEY']}"},
    params={"url": link, "fields": "id,title,published_at,metrics"},
    timeout=60,
)
print(r.json()["data"]["item"])

如果传入的 xiaohongshu.com 链接不是笔记页,会返回 invalid_params 并用一句话说明原因,不扣费。

容易踩的坑

  • id 和 url 只传一个,别同时传。
  • 博主主页的分享链接不是笔记。主页链接请交给博主信息接口,它同样接受 xhslink.com 短链。
  • 已删除或设为私密的笔记返回 not_found,不扣费。投放笔记被博主悄悄下掉,往往就是这样发现的。
  • 小红书不公开浏览量,metrics.views 为 null。

其他办法

如果你要的是把图片、视频文件存到本地,XHS-Downloader 一类工具配合自己的浏览器登录态就能做得很好。只有几个链接的话,在 App 里打开记一下数字也行。要在几周里持续跟踪大量投放笔记,可以看竞品监测方案,用的是同一个接口,只是定时去跑。

更新于