返回 Skill 列表
extension
分类: 数据与分析无需 API Key

微博抓取工具-DF

微博内容获取技能。给定微博用户UID和日期范围,自动通过 web-access(Chrome CDP Proxy) 抓取该用户的微博内容,包含完整正文(自动处理长文"全文"展开)、配图链接、互动数据, 并生成按日期分组的 Markdown 资料库文档与 JSON 数据文件。 适用场景:内容创作选题、社媒资料归档、播客素材整理。 当用户提到"抓微博"、"微博内容"、"微博资料库"等关键词时使用此技能。

person作者: user_2b68e5abhubcommunity

微博内容获取技能

用途

自动抓取指定微博用户在给定时间范围内的所有微博,生成:

  • weibo_final.json:结构化数据文件
  • weibo_resource_library.md:按日期分组的 Markdown 资料库

使用前置条件(必须先告知用户)

在执行任何操作前,先向用户展示以下前置要求清单:

⚠️ 使用本技能前,请确认以下操作已完成:

1. ✅ 在 WorkBuddy 中激活 web-access skill(输入 /web-access 或让 AI 调用)
2. ✅ 在弹出的 Chrome 浏览器中访问 https://m.weibo.cn 并确认已登录微博账号
3. ✅ 验证 CDP Proxy 正在运行:
   PowerShell:Invoke-WebRequest -Uri "http://127.0.0.1:3456/targets" -UseBasicParsing
   返回 JSON 数组则正常

未完成以上步骤将导致连接失败或长文内容缺失。

等用户确认后,再继续执行。

执行流程

Step 1:加载 web-access skill

# 在 AI 对话中
Skill("web-access")

确认 CDP Proxy 运行在 127.0.0.1:3456

Step 2:确认输出目录

默认输出到当前工作目录(cwd)。如需自定义,让用户指定路径。

Step 3:运行抓取脚本

使用 Node.js 22.x 执行技能内置脚本:

$node = "C:\Users\tianz\.workbuddy\binaries\node\versions\22.12.0\node.exe"
$script = "C:\Users\tianz\.workbuddy\skills\weibo-content-fetcher\scripts\fetch_weibo.js"
$uid       = "7994205115"            # 目标微博用户 UID
$startDate = "2026-05-12"            # 替换为实际开始日期
$endDate   = "2026-05-14"            # 替换为实际结束日期
$outputDir = "C:\Users\tianz\WorkBuddy\2026-05-14-task-11"  # 替换为实际输出目录

& $node $script $uid $startDate $endDate $outputDir

关键注意事项(勿遗漏)

  • Node.js 必须使用绝对路径(受管理运行时)
  • hostname 必须使用 127.0.0.1,不能用 localhost(IPv6 会 ECONNREFUSED)
  • 如遇 JSON 解析失败,检查是否有 UTF-8 BOM,用 buf.replace(/^\uFEFF/, '') 处理

Step 4:验证输出

检查生成的两个文件:

  • weibo_final.json:确认条数符合预期
  • weibo_resource_library.md:确认内容完整,长文是否已展开

Step 5:如遇乱码或内容缺失

若某些微博文本为乱码(?????),说明字符编码异常,排查步骤:

  1. 检查 CDP 响应是否用 res.setEncoding('utf8') 读取(而非 Buffer concat)
  2. 若是通过 PowerShell 保存的临时文件,改用 Node.js HTTP 直接读取并用 utf8 编码

若某些长文内容缺失(isLongText=truetext_full 为空),排查步骤:

  1. 确认微博账号已登录
  2. 增加详情页等待时间(3000ms → 5000ms)
  3. 手动在 Chrome 中打开该微博详情页,确认能正常加载

API 参数说明

| 字段 | 说明 | |------|------| | UID | 目标微博用户 UID(命令行第一个参数) | | containerid | 107603{UID},自动拼接 | | API 基础 URL | https://m.weibo.cn/api/container/getIndex | | 详情页 URL 模板 | https://m.weibo.cn/detail/{mblogId} |

常用账号 UID 参考

| 账号 | UID | |------|-----| | @三角洲行动赛事 | 7994205115 |

输出文件说明

weibo_final.json

每条微博包含以下字段:

{
  "id": "微博ID",
  "created_at": "发布时间(UTC)",
  "text": "HTML格式正文",
  "text_full": "纯文本完整正文(长文才有)",
  "isLongText": false,
  "reposts_count": 0,
  "comments_count": 0,
  "attitudes_count": 0,
  "pics": ["图片URL数组(来自API)"],
  "pics_detail": ["图片URL数组(来自详情页DOM,更完整)"]
}

weibo_resource_library.md

按日期分组,每条微博包含:发布时间、完整正文(已去除 HTML 标签)、配图链接、互动数据、微博详情链接。

参考文档

  • 详细前置条件和故障排查:references/prerequisites.md
  • 抓取脚本源码:scripts/fetch_weibo.js