Install
openclaw skills install @zhouq2039-lang/hongshu-note-parser丢一条小红书笔记链接,自动抓取笔记内容(标题/正文/图片/标签/互动数据),AI 分析后输出交互式胶囊卡片 HTML 报告。需要联网访问小红书页面下载笔记内容和图片。分析由调用方 AI 完成,不需要外部 API Key。
openclaw skills install @zhouq2039-lang/hongshu-note-parser支持平台:小红书 (xiaohongshu.com / xhslink.com)
用户丢一条小红书笔记链接 → 脚本抓取笔记内容+下载图片 → 你(AI)分析内容 → 脚本生成 HTML 报告 → 交付给用户。
| 权限 | 用途 | 触发条件 | 最小化说明 |
|---|---|---|---|
| 网络访问(HTTP GET) | 访问小红书笔记页面、下载笔记图片 | 用户提供笔记链接时 | 仅访问用户提供的链接对应的小红书页面和图片 CDN |
| 本地文件写入 | 保存笔记数据 JSON、下载的图片、HTML 报告 | 采集和生成报告时 | 仅写入 output/ 目录 |
| 本地文件读取 | 读取 AI 生成的分析 JSON 生成 HTML | --generate-html 模式 | 仅读取指定的 JSON 文件 |
xiaohongshu.com 下载笔记页面 HTMLxhscdn.com)下载笔记配图xhslink.com 会被跟随重定向到完整链接parse.py(采集层) AI(分析层) parse.py --generate-html(交付层)
────────────── ────────── ──────────────────────────────────
抓取笔记 → 下载图片 → stdout JSON → 读内容+看图 → 分析 JSON → 胶囊卡片交互 HTML
脚本只负责抓取内容和 HTML 渲染,不做任何分析。分析由调用方 AI 完成——不需要外部 API Key。
最终 HTML 是一个干净的卡片式交互页面:
<em> 高亮# 无需额外安装!仅使用 Python 标准库(urllib / json / re / html)
python scripts/parse.py "小红书笔记链接"
stdout 输出单行 JSON:
{
"status": "parsed",
"note_id": "abc123",
"platform": "小红书",
"title": "笔记标题",
"desc": "笔记正文全文...",
"note_type": "图文笔记",
"publish_date": "2024.08.15",
"author": {"nickname": "作者昵称", "user_id": "xxx", "avatar_url": "..."},
"interactions": {"liked_count": "1234", "collected_count": "567", "comment_count": "89", "share_count": "12"},
"tags": ["标签1", "标签2"],
"images": [
{"url": "https://...", "local_path": "output/0815-小红书-标题-img/img_0.jpg", "width": 1080, "height": 1440}
],
"video_url": null,
"data_path": "output/0815-小红书-标题-笔记数据.json",
"output_dir": "output/"
}
必须从 stdout 解析。stderr 是进度日志,忽略。
如果
images中有local_path,用 Read 工具读取图片文件来做视觉分析。
读取 desc 字段(笔记正文)和 images 中的本地图片路径,深度理解笔记内容后,按以下 schema 输出分析 JSON:
{
"meta": {
"platform": "小红书",
"title": "笔记标题",
"author": "作者昵称",
"note_type": "图文笔记",
"date": "2024.08.15",
"stats": {"likes": "1234", "collects": "567", "comments": "89", "shares": "12"},
"images": ["https://笔记图片URL1", "https://笔记图片URL2"]
},
"summary": "一句话总结。<em>核心策略</em> 用 em 标签包裹,页面高亮显示。",
"visual_strategy": [
{"label": "封面策略", "body": "封面图的视觉设计手法:对比/数字/情绪钩子/品牌露出方式...分析封面如何吸引点击"},
{"label": "图片节奏", "body": "图片数量、页面递进逻辑(问题→科普→产品→数据→信任→护理)、浏览体验流..."},
{"label": "图文配合", "body": "图片与正文的互补关系:图片承载什么信息、文字承载什么、是否有信息增量..."},
{"label": "视觉风格", "body": "整体视觉调性:配色策略/排版风格/字体层级/信息密度/品牌一致性..."},
{"label": "品牌植入", "body": "品牌/产品如何视觉化呈现:产品露出方式/卖点视觉化手法/信任背书呈现..."}
],
"capsules": [
{
"id": "content",
"icon": "📝",
"title": "内容拆解",
"subtitle": "标题/开头/正文/结尾",
"detail_title": "内容结构拆解",
"type": "structure",
"content": [
{"label": "标题策略", "body": "标题用了什么手法(数字/情绪/悬念/对比)..."},
{"label": "开头钩子", "body": "前3行如何吸引读者继续看..."},
{"label": "正文结构", "body": "信息组织方式(列表/故事/对比/教程)..."},
{"label": "结尾引导", "body": "如何引导互动(提问/号召/预告)..."}
]
},
{
"id": "quotes",
"icon": "💬",
"title": "金句摘录",
"subtitle": "笔记中的关键句",
"detail_title": "金句摘录",
"type": "quotes",
"content": [
{"text": "笔记中的关键金句——必须从正文逐字摘录,不可编造"}
]
},
{
"id": "data",
"icon": "📊",
"title": "数据与标签",
"subtitle": "互动/标签/选题",
"detail_title": "数据与标签分析",
"type": "judgment",
"content": [
{"label": "互动数据", "title": "数据表现判断", "body": "赞藏比/评论率分析,内容质量 vs 流量表现..."},
{"label": "标签策略", "title": "标签选择分析", "body": "用了哪些标签、覆盖什么搜索池、标签竞争度..."},
{"label": "选题判断", "title": "选题方向分析", "body": "选题属于什么类型(种草/教程/测评/观点)..."}
]
},
{
"id": "brand",
"icon": "💡",
"title": "品牌可复用",
"subtitle": "模板/差异化/注意",
"detail_title": "品牌可复用洞察",
"type": "highlights",
"content": [
{"title": "可复用模板", "body": "从这篇笔记可以提炼出什么内容模板..."},
{"title": "差异化建议", "body": "品牌方做同类内容时如何差异化..."},
{"title": "注意事项", "body": "直接照搬的坑、平台规则限制..."}
]
}
]
}
分析规范:
<em> 标签:2-5 处,包裹核心判断词/概念structure(标签+内容)、quotes(引用列表)、judgment(三栏卡片)、highlights(编号要点)将分析 JSON 写入 output/_analysis.json。
python scripts/parse.py --generate-html output/_analysis.json
stdout 输出:
{"status": "generated", "html_path": "output/0815-小红书-标题-报告.html"}
HTML 报告已生成在 html_path,将其展示给用户。无需额外处理。
| 参数 | 说明 |
|---|---|
笔记链接(采集模式) | 小红书笔记链接(长链/短链/分享文本均可) |
--generate-html <file> | 从分析 JSON 生成 HTML 报告 |
--out-dir | 输出目录(默认 output/) |
--no-images | 跳过图片下载(仅提取文字和URL) |
xsec_token:通过「分享→复制链接」获取的完整链接包含此参数;直接从浏览器地址栏复制的可能没有__INITIAL_STATE__ 解析失败,脚本会降级到 meta 标签提取examples/ 目录包含两个真实案例。示例 HTML 为轻量版(图片以占位符代替 base64 数据以控制文件体积),实际运行生成的报告会完整内嵌所有图片。每个案例同时包含分析 JSON(AI 产出模板)和 HTML 报告(布局参考)。