Weibo Distill 是一个面向社会科学研究的微博用户人格蒸馏与群体画像工具集。它从微博公开数据中自动提取人格信号,产出三个层级的产物:个体人格分析报告、可对话 Persona Skill(AI 虚拟角色)、群体画像统计报告。适用于社会学、传播学、心理学、市场营销研究者构建可交互的用户群体模型。
微博人格蒸馏器 (Weibo Persona Builder)是一项面向实际任务的技能,主要用于「你发的每一条微博,都在无意中画出了自己的心理地图;Overview;
人物 Persona Skill — 可对话的模拟人格(skill 文件,加载后即可与其模拟对话);群体层级:;3. 群体画像报告 — 多用户的统计分布与。它将相关步骤、工具调用和结果整理方式集中到统一流程中,帮助使用者更快完成目标并减少重复操作。
从功能定位来看,该技能强调把分散的操作要求整理成清晰、可复用的处理流程,使用户能够围绕既定目标快速准备输入、选择执行方式并获得结构化结果。实际使用前应先确认任务范围、数据来源、运行环境、必要权限和关键参数,再依据技能说明逐步执行;若输入条件不完整,应先补齐信息或采用保守配置,避免因错误假设导致结果偏离需求。执行过程中需要关注工具调用是否成功、接口或依赖是否可用、输出格式是否符合预期,并对异常提示、缺失字段和边界情况进行处理;涉及批量任务时,还应保存进度,避免中断后重复操作。
「你发的每一条微博,都在无意中画出了自己的心理地图。」
从微博数据中提取人格信号,生成三个层级的产物:
个体层级:
群体层级: 3. 群体画像报告 — 多用户的统计分布与聚类分析(赋能社会科学研究)
核心逻辑:微博是公开表演台,但人格痕迹藏不住——措辞习惯、情感波动模式、话题偏好、深夜发言、互动方式……这些跨场景复现的信号比单条内容更可靠。当多个用户的个体画像汇聚到一起,群体层面的统计规律开始浮现——这就是计算社会科学的基础设施。
使用本 skill 前,必须依次完成以下步骤:
☐ 1. Chrome 浏览器已开启远程调试:chrome://inspect/#remote-debugging → 勾选 Allow remote debugging ☐ 2. 在 Chrome 中访问 https://m.weibo.cn 并确认已登录微博账号 ☐ 3. Web Access Skill 已激活(CDP Proxy 运行中)
核心原则:
对每个 UID 执行:
1️⃣ API 模式(优先):
- 在已有微博 tab 内用 eval 调 API:
fetch('https://m.weibo.cn/api/container/getIndex?containerid=107603{UID}&page=N', {credentials:'include'})
- 跳过长文展开(避免 session 超时),在报告中标注「长文待展开」
- 保存 weibo_final.json
2️⃣ 结果判断:
A) 获取 ≥ 30 条 → ✅ 标记为「good」→ 进入下一个 UID
B) 获取 1-29 条 → 进入「数据不足判断」(见 1.2)
C) 获取 0 条(API 返回 ok:-100 验证码/限流) → 进入「技术限制重试」(见 1.3)
D) 获取 0 条(API 正常但所有卡片超出日期范围) → 判定为「该时段无发帖」→ 标记为「empty」→ 进入下一个 UID
3️⃣ 每完成一个 UID,输出进度:`[N/Total] UID xxx: 名称 | X条 [quality]`
4️⃣ 每抓取 3-4 个 UID 后,主动刷新 session(导航到 m.weibo.cn 主页 + 等 3 秒)
当获取 1-29 条时,判断原因: - 如果 API 返回的所有页都已翻完(无更多数据),且日期范围正常覆盖 → 判定为「时段内数据不足」 → 标记为「marginal」→ 进入下一个 UID - 如果 API 中途被限流(后续页返回 -100 或报错),且有更多页未翻 → 判定为「技术限制」 → 进入「技术限制重试」(见 1.3)
当因验证码/限流/网络问题导致数据不完整时:
重试策略(递增间隔):
- 第 1 次重试:导航到 m.weibo.cn 刷新 session → 等待 5 秒 → 重新抓取
- 第 2 次重试:尝试 DOM 滚动回退模式(profile/{UID} + 滚动提取 Vue 组件)
- 第 3 次重试:关闭当前微博 tab → 创建新 tab 访问 m.weibo.cn → 重新抓取
⚠️ 3 次重试后仍失败:
→ 标记为「failed」→ 记录失败原因 → 进入下一个 UID(不再纠缠)
→ 在最终决策点汇总时展示失败原因,由用户决定是否手动干预
每个 UID 抓取完成后立即保存:
{outputDir}/{UID}/weibo_final.json — 结构化微博数据{outputDir}/{UID}/weibo_resource_library.md — 按日期分组的资料库所有 UID 抓取完成后,统计汇总并以表格展示成果:
📊 数据抓取汇总: | UID | 用户名 | 微博数 | 质量 | 日期范围 | |-----|--------|--------|------|----------| | xxx | 张三 | 220 | ✅ good | 2026-01-01~2026-05-27 | | xxx | 李四 | 42 | ✅ good | 2026-04-24~2026-05-27 | | xxx | 王五 | 10 | ⚠️ marginal | 2026-02-28~2026-03-24 | | xxx | 赵六 | 0 | ❌ failed | - | 质量评级: - ✅ good: ≥30条,可正常分析 - ⚠️ marginal: 4-29条,分析但标注「数据不足」 - ❌ failed: 0条,无法分析
展示汇总后必须询问用户(使用 AskUserQuestion 工具):
数据抓取完成,请选择下一步操作:
选项(单选):
用户选择「进行下一阶段」→ 继续 Phase 2 用户选择「补全数据」→ 回到 Step 1 重新抓取失败的 UID,然后再次进入 Step 2 决策点 用户选择「结束」→ 保存进度文件,告知用户如何恢复
⚠️ 绝对禁止跳过此决策点直接进入分析阶段。无论数据好坏,必须先展示汇总并让用户选择下一步。
weibo_final.json分析前必须做的事:读取 references/personality-analysis.md 获取完整分析框架和证据标注规范。
分析维度(逐维分析,不可跳过):
必须明确写出:
将 Phase 2 的分析结果汇总,写入 personality_report.md,同时产出结构化数据 profile_data.json:
weibo_/ ├── weibo_final.json # 来自微博抓取工具-DF ├── weibo_resource_library.md # 来自微博抓取工具-DF ├── personality_report.md # ★ 本 Phase 产出:人格分析报告 ├── profile_data.json # ★ 本 Phase 产出:结构化人格数据(群体分析的数据源) └── persona_ / # Phase 4 产出:人物 persona skill └── SKILL.md
报告格式要求:
profile_data.json 格式:必须按照 references/group-analysis.md §数据来源 中定义的结构输出,确保 Big Five 评分、认知风格、动机驱动、情绪基调等关键字段完整。这是 Phase 6 群体分析的唯一数据源,不完整会导致群体分析失败。
Phase 3 完成后暂停,展示报告摘要给用户确认:
人格报告摘要: - Big Five: O=7 C=5 E=3 A=6 N=4 - 认知风格: 系统化+抽象 - 核心动机: 成就驱动(+探索) - 情绪基调: 温和乐观 - 诚实标注: 3 条局限
用户确认后 → Phase 4。
读取 references/persona-template.md 获取 persona skill 的标准结构。
将 Phase 2 的分析结果映射到模板占位符:
| 模板 Section | 填充来源 |
|---|---|
| identity_card | 微博综合分析 + 关键特征一句话概括 |
| Big Five 表格 | Phase 2.1 评分 + 特征描述 |
| 认知风格 | Phase 2.2 认知风格 |
| 动机驱动 | Phase 2.2 动机驱动 |
| 核心价值观 | Phase 2.2 价值观排序 |
| 防御机制 | Phase 2.2 防御机制 |
| 情绪基调 | Phase 2.2 情绪基调 |
| 依恋风格 | Phase 2.2 依恋风格 |
| 表达 DNA | Phase 2.3 全部内容 |
| 行为模式 | Phase 2.4 全部内容 |
| 时间线 | 从微博时间分布 + 关键节点提取 |
| 诚实边界 | Phase 2.5 + Phase 2 中标注的局限性 |
将填充完成的 SKILL.md 写入 persona_。
生成完成后,快速验证:
触发条件:用户明确要求「群体分析」「群体画像」「聚合统计」「这批用户有什么共同特征」等, 或用户提供了包含多个用户分析结果的目录。
确认存在多个用户的 profile_data.json(每个用户一个,由 Phase 3 产出)。
目录结构示例:
weibo-distill/
├── 2731728324/
│ ├── profile_data.json ← Phase 3 产出
│ └── ...
├── 2865101843/
│ ├── profile_data.json ← Phase 3 产出
│ └── ...
└── 5698023579/
├── profile_data.json ← Phase 3 产出
└── ...
# 用法 python scripts/aggregate_profiles.py <包含多个用户子目录的根目录> [--output <输出目录>]
脚本自动完成:
profile_data.jsongroup_data.json + group_summary.csv基于 group_data.json,结合 references/group-analysis.md 中的框架,生成 group_profile_report.md:
报告必须包含的 section:
样本概况
Big Five 群体画像
认知风格分布
动机驱动分布
情绪基调分布
群体聚类(N≥5 时)
群体画像总结
社会科学应用建议
group_profile_report.md + group_data.json + group_summary.csvgroup_data.json 导入 SPSS/R/PythonPhase 6 完成后暂停,展示群体画像摘要给用户确认:
群体画像摘要 (N=5): - Big Five 群体均值: O=6.8 C=5.4 E=6.2 A=6.0 N=3.8 - 认知风格: 直觉化 60% / 系统化 40% - 主要动机: 归属驱动(3人) > 成就驱动(2人) - 情绪基调: 积极 80% / 温暖 60% - 聚类: 2 簇 —「外向温暖型」(3人) vs「内敛分析型」(2人)
weibo_/ ├── weibo_final.json # 来自 DF 工具 ├── weibo_resource_library.md # 来自 DF 工具 ├── personality_report.md # ★ 人格分析报告 ├── profile_data.json # ★ 结构化人格数据(Phase 6 数据源) └── persona_ / # ★ 人物 persona skill └── SKILL.md # 可直接加载使用
group_analysis/ ├── group_profile_report.md # ★ 群体画像报告(可读 Markdown) ├── group_data.json # 结构化群体数据(可导入 SPSS/R/Python) └── group_summary.csv # 个体摘要表(可用 Excel 打开)
用户:帮我分析 UID 5698023579 的微博人格 AI: 1. 检查前置条件 → 确认 weibo_final.json 已存在(2025-06-07 ~ 2026-06-07,共 312 条) 2. Phase 1-2 分析 → 生成 personality_report.md + profile_data.json 3. Phase 3 确认 → 展示摘要,用户确认 4. Phase 4 生成 persona → 产出 persona_/SKILL.md 5. 完成,用户可以加载 persona skill 进行对话
用户:我已经分析了 10 个微博用户,帮我做群体画像聚合 AI: 1. 确认目录下存在 10 个 profile_data.json 2. Phase 6 Step 2 → 运行 aggregate_profiles.py 3. 基于 group_data.json → 生成群体画像报告 4. 展示摘要 → 用户确认 5. 交付 group_profile_report.md + group_data.json + CSV
用户:我要做 95 后微博用户的心理画像研究,帮我采集 20 个用户的微博并生成群体报告 AI: 1. 逐个用户:DF 工具抓取 → 个体人格蒸馏 → persona + profile_data.json 2. 全部完成后:群体聚合 → 群体画像报告 → 虚拟受访者池 3. 交付: - 20 份个体报告 + persona skill(可单独对话模拟) - 1 份群体画像报告(导入 SPSS 做进一步分析) - 1 份 group_summary.csv(Excel 可读)
人格分析框架,包含 Big Five 评分指引、证据标注规范、深层人格维度定义。
生成的 persona skill 模板,定义了所有占位符和 Section 结构。 重要:模板开头注明了生成 persona 时必须同步输出 profile_data.json。
群体画像统计分析框架,包含:
群体数据聚合脚本。扫描目录下所有 profile_data.json,计算描述统计 + 分类分布 + K-means 聚类, 输出 group_data.json + group_summary.csv。
python scripts/aggregate_profiles.py[--output ]
相关专题
热门下载
相关下载
精品课程
共22课时 | 5.3万人学习
共20课时 | 5万人学习