weibo-cli 实战:用命令行搭建微博自动化运营 Pipeline
weibo-cli 实战用命令行搭建微博自动化运营 Pipeline环境Node.js 18 · weibo-ai/weibo-cli · macOS / Linux / Windows前一篇文章介绍了 weibo-cli 的具体用法。本篇就进入实战阶段如何把 weibo-cli 的各项能力组合起来搭建一条可定时运行、稳定输出结果的自动化 Pipeline。weibo-cli 目前支持的能力包括内容发布、评论与转发等互动操作、内容检索、热点趋势查询。本篇的所有示例均基于这些已开放能力。文中所有命令均为实际执行验证后的结果。涉及发布、回复等写操作的示例统一标注 [写操作]此类操作不可撤销执行前请确认数据无误。一、Pipeline 的基本结构一条典型的微博数据 Pipeline 由三个环节组成采集调用 weibo-cli 命令获取数据输出 JSON处理用 Python / Shell 对 JSON 做过滤、聚合、格式转换输出写入文件、发送通知、或触发下一步动作三个环节通过 Shell 管道|或临时文件串联。weibo-cli 的 --output json 参数保证输出格式固定适合作为管道数据源。输出格式说明参数值 适合场景table默认 终端直接查看人类可读json 脚本解析、管道传递、文件存储在脚本中始终显式指定 --output json保证后续处理逻辑的稳定性。二、场景一热点趋势监控注意search hot_word/biz 需要 Pro 或 Ultra 套餐。2.1 获取热搜列表weibo-cli 提供热点趋势查询能力可获取当前热搜数据weibo-cli search hot_word/biz --output json输出的 data 数组包含热搜词条字段包括 id排名、word热搜词、num热度值。weibo-cli search hot_word/biz --output json | python3 -c import sys, jsondata json.load(sys.stdin)[‘data’]for item in data:print(f{item[‘id’]}. {item[‘word’]} 热度:{item[‘num’]})2.2 关键词过滤weibo-cli search hot_word/biz --output json | python3 -c import sys, jsondata json.load(sys.stdin)[‘data’]keyword ‘AI’matches [x for x in data if keyword in x[‘word’]]for m in matches:print(m[‘word’], m[‘num’])2.3 定时执行将上述脚本保存为 monitor.sh加入 crontab 定时运行每小时执行一次0 * * * * /path/to/monitor.sh /var/log/monitor.log 21三、场景二内容检索与数据采集3.1 关键词搜索weibo-cli 支持按关键词检索微博内容weibo-cli search statuses/limited–q “目标关键词”–type 1–sort hot–count 20–output json result.json主要参数说明经 commands show 核验参数 必填 说明–q 是 检索关键词不能含 {、}、 等特殊字符–type 是 1微博 2评论 3私信–count 否 返回条数默认 10最大 20–sort 否 time时间倒序 hot热门度仅返回精选微博–page 否 页码默认为 1可用套餐Basic、Plus、Pro、Ultra3.2 多页采集单次最多返回 20 条需要更多数据时使用 --page 参数翻页#!/bin/bashcollect.sh 分页采集关键词搜索结果KEYWORD“目标关键词”for page in 1 2 3 4 5; doweibo-cli search statuses/limited–q “$KEYWORD”–type 1–sort hot–count 20–pageKaTeX parse error: Expected group after _ at position 33: …ut json page_̲{page}.jsonCOUNTKaTeX parse error: Expected group after _ at position 51: …load(open(page_̲{page}.json’))print(len(d.get(‘statuses’, []))))echo “第page页page 页page页COUNT 条”if [ “$COUNT” -eq “0” ]; thenecho “无更多数据停止”breakfisleep 1.5done注意相邻两次请求之间建议间隔 1 秒以上避免请求频率过高。3.3 结果合并与规范化import json, globall_statuses []for f in sorted(glob.glob(“page_*.json”)):data json.load(open(f))all_statuses.extend(data.get(“statuses”, []))normalized []for s in all_statuses:normalized.append({“id”: str(s.get(“id”, “”)),“text”: s.get(“text”, “”),“attitudes_count”: s.get(“attitudes_count”, 0),“comments_count”: s.get(“comments_count”, 0),“reposts_count”: s.get(“reposts_count”, 0),“user_name”: s.get(“user”, {}).get(“screen_name”, “”),“user_followers”: s.get(“user”, {}).get(“followers_count”, 0),})with open(“merged.jsonl”, “w”, encoding“utf-8”) as f:for item in normalized:f.write(json.dumps(item, ensure_asciiFalse) “\n”)print(f合并完成共 {len(normalized)} 条)四、场景三互动数据处理4.1 获取评论获取当前账号收到的评论可用套餐Basic、Plus、Pro、Ultraweibo-cli comments to_me/biz–count 20–output json comments.json参数说明–count 最大 20–page 可翻页–max_id / --since_id 可做游标翻页。4.2 过滤特定评论import json, recomments json.load(open(“comments.json”))[“comments”]pattern re.compile(r’多少钱|在哪买|怎么买|链接’)inquiry [c for c in comments if pattern.search(c.get(“text”, “”))]print(f筛选出 {len(inquiry)} 条咨询类评论)with open(“inquiry.json”, “w”, encoding“utf-8”) as f:json.dump(inquiry, f, ensure_asciiFalse, indent2)4.3 批量回复 [写操作]注意回复操作不可撤销。执行前请先检查 inquiry.json 的内容是否符合预期。import json, subprocessinquiry json.load(open(“inquiry.json”))for c in inquiry:mid c[“rootidstr”] # 被评论的微博 ID对应 --idcid c[“idstr”] # 评论 ID对应 --cidsubprocess.run([“weibo-cli”, “comments”, “reply”,“–id”, mid,“–cid”, cid,“–comment”, “感谢咨询详情可私信了解”])comments reply 必填参数–id微博 ID、–cid评论 ID、–comment回复内容不超过 140 汉字。可用套餐Basic、Plus、Pro、Ultra。五、完整 Pipeline 示例将采集、处理、输出三个环节串联为一个可定时执行的脚本#!/bin/bashpipeline.sh用法bash pipeline.sh “目标关键词”set -euo pipefailKEYWORD“1:−AI工具TIMESTAMP{1:-AI工具} TIMESTAMP1:−AI工具TIMESTAMP(date %Y%m%d_%H%M)OUTPUT_DIR”./data/TIMESTAMPmkdir−p{TIMESTAMP} mkdir -p TIMESTAMPmkdir−pOUTPUT_DIRecho “ [1/3] 检查账号状态 ”weibo-cli doctorecho “”echo “ [2/3] 采集关键词微博 ”weibo-cli search statuses/limited–q “KEYWORD −−type1 −−sorthot −−count20 −−outputjsonKEYWORD \ --type 1 \ --sort hot \ --count 20 \ --output json KEYWORD−−type1−−sorthot−−count20−−outputjsonOUTPUT_DIR/raw.json”echo “”echo “ [3/3] 生成简报 ”python3 - EOFimport jsondata json.load(open(“OUTPUTDIR/raw.json))itemsdata.get(statuses,[])totallen(items)iftotal0:print(无数据)else:avgattsum(s[attitudescount]forsinitems)/totalavgcmtsum(s[commentscount]forsinitems)/totaltop3sorted(items,keylambdax:x[attitudescount],reverseTrue)[:3]print(f关键词OUTPUT_DIR/raw.json)) items data.get(statuses, []) total len(items) if total 0: print(无数据) else: avg_att sum(s[attitudes_count] for s in items) / total avg_cmt sum(s[comments_count] for s in items) / total top3 sorted(items, keylambda x: x[attitudes_count], reverseTrue)[:3] print(f关键词OUTPUTD​IR/raw.json))itemsdata.get(statuses,[])totallen(items)iftotal0:print(无数据)else:avga​ttsum(s[attitudesc​ount]forsinitems)/totalavgc​mtsum(s[commentsc​ount]forsinitems)/totaltop3sorted(items,keylambdax:x[attitudesc​ount],reverseTrue)[:3]print(f关键词KEYWORD”)print(f采集量{total} 条)print(f平均点赞{avg_att:.0f} 平均评论{avg_cmt:.0f}“)print(”\nTop 3 互动微博“)for i, s in enumerate(top3, 1):print(f” {i}. [{s[‘attitudes_count’]} 赞] {s[‘user’][‘screen_name’]}: {s[‘text’][:50]}…)EOFecho “”echo “完成数据保存至 $OUTPUT_DIR”加入 crontab 每日定时执行0 9 * * * /path/to/pipeline.sh “AI工具” /var/log/pipeline.log 21六、常见问题问题现象 排查方式命令执行报错原因不明 先运行 weibo-cli doctor逐项确认账号与套餐状态–count 指定数量但实际返回更少 sorthot 仅返回精选微博实际条数可能少于上限COUNT_EXCEEDS_MAX 报错 search statuses/limited 和 comments to_me/biz 的 --count 最大均为 20hot_word/biz 提示无权限 该命令需要 Pro 或 Ultra 套餐Windows 下管道符传输 JSON 乱码 改用 PowerShell 或 WSL2 执行脚本写操作执行了不想要的内容 写操作前务必先检查数据操作不可撤销七、小结weibo-cli 将微博开放能力封装为可在终端直接调用的命令核心价值在于降低接口调用的门槛开发调试阶段可以快速验证效果在已有项目中也可以将其作为流程的一个环节嵌入。本篇涉及的三个场景——热点趋势监控、内容检索采集、互动数据处理——均基于 weibo-cli 当前已开放的能力所有命令参数均经 CLI 实际调用核验。具体的业务逻辑、内容策略和应用设计需要开发者结合自身需求完成。更多命令和参数说明参见官方文档。参考资源官方文档open.weibo.com/cli/index使用手册open.weibo.com/cli/quickstart

相关新闻

实战指南:XLeRobot低成本双臂移动机器人强化学习完整解决方案

实战指南:XLeRobot低成本双臂移动机器人强化学习完整解决方案

实战指南:XLeRobot低成本双臂移动机器人强化学习完整解决方案 【免费下载链接】XLeRobot XLeRobot: Practical Dual-Arm Mobile Home Robot for $660 项目地址: https://gitcode.com/GitHub_Trending/xl/XLeRobot XLeRobot是一个革命性的低成本双臂移动机器人…

2026/10/21 5:11:31 阅读更多 →
想找靠谱简约轨道插座服务商?这些实用挑选技巧帮你少踩坑选对

想找靠谱简约轨道插座服务商?这些实用挑选技巧帮你少踩坑选对

装修做水电规划时,不少业主和设计师都会纠结插座布局:传统插座位置固定不够用、外接插排杂乱还显丑,想要装简约款智能轨道插座,又不知道怎么挑靠谱的服务商,稍不注意就会踩中“用半年就接触不良”“安全防护不到位”的…

2026/10/22 6:31:35 阅读更多 →
Linux 入门实战:从目录结构到常用命令

Linux 入门实战:从目录结构到常用命令

一、Linux 目录结构 —— 先搞清楚“东西放哪儿”Windows 有 C 盘、D 盘,Linux 则是一棵以根(/)为起点的目录树。每个目录都有其约定俗成的用途,了解之后,你就能猜到某个文件大概在什么地方。根目录 / 所有目录的起点。…

2026/10/22 4:01:04 阅读更多 →

最新新闻

Electron桌面应用开发实战:从环境搭建到打包发布全流程

Electron桌面应用开发实战:从环境搭建到打包发布全流程

做前端这些年,我大部分时间都在跟浏览器标签页打交道,直到第一次把桌面应用跑起来,才发现原来自己一直被限制在地址栏和刷新按钮围起来的框框里。Electron这个词,最开始是在某段时间频繁出现在同事的讨论里,一个用HTML…

2026/10/22 10:18:38 阅读更多 →
滑盖智能锁T109深度解析:结构原理、安装调试与故障排查

滑盖智能锁T109深度解析:结构原理、安装调试与故障排查

简介:亚太天能T109滑盖智能锁产品说明书是一份PDF格式的官方技术文档,主要面向智能锁安装人员、终端用户及售后维护者,帮助快速掌握产品安装、配置与常见故障处理。全包仅1个PDF文件,大小4.37MB,内容结构清晰&#xff…

2026/10/22 11:01:53 阅读更多 →
PMSM弱磁控制原理与Simulink建模:高速AGV驱动系统设计指南

PMSM弱磁控制原理与Simulink建模:高速AGV驱动系统设计指南

上个月我在调试一台高速AGV的驱动系统,整车要求空载跑到8m/s,电机转速已经拉到额定点,驱动器的输出电压也顶到了母线电压极限附近。再往上踩速度指令,转速纹丝不动,三相电流反而开始震荡。那会儿我的第一反应就是&…

2026/10/22 9:44:47 阅读更多 →
C++核心知识点:从内存管理到STL的实战指南

C++核心知识点:从内存管理到STL的实战指南

C 这门语言我前前后后折腾了十几年,用它写过嵌入式驱动、做过游戏服务端,也搭过基础组件库。每次看到新人一头扎进"C 核心知识点"这个搜索词,我其实挺感慨的——这门语言的难点从来不是语法多,而是知识点之间的耦合太深…

2026/10/22 10:42:00 阅读更多 →
T109滑盖智能锁怎么装?安装调试与故障排查全攻略

T109滑盖智能锁怎么装?安装调试与故障排查全攻略

简介:亚太天能T109滑盖智能锁产品说明书以PDF格式发布,适合智能锁用户、安装人员与售后维修人员阅读。内容围绕T109系列指纹密码刷卡锁展开,先介绍前面板、后面板、锁体、机械钥匙、电池盒盖等部件名称与功能,再给出完整安装步骤&…

2026/10/22 10:40:08 阅读更多 →
LLM知识降熵:从信息垄断到理解权下放

LLM知识降熵:从信息垄断到理解权下放

你有没有过这种经历:翻开源码注释、论文摘要或者一份专业报告,每个字都认识,连在一起却像天书。想找人聊聊,身边要么没人懂,要么懂的懒得跟你解释。后来我试着把同一段内容丢给一个大语言模型,几秒钟之后&a…

2026/10/22 10:56:37 阅读更多 →

日新闻

周新闻

基于GMM的语音识别系统原理与MATLAB实现详解

基于GMM的语音识别系统原理与MATLAB实现详解

说到基于高斯混合模型(GMM)的语音识别系统,很多人第一反应就是一堆数学公式,觉得门槛很高。但如果你真的在MATLAB里把它落地跑通,会发现核心其实就是三件事:把声音变成特征向量,用GMM给每个类别…

2026/10/22 1:47:45 阅读更多 →
数字图像处理入门:反白、灰度化、调色板修改与导出txt实践

数字图像处理入门:反白、灰度化、调色板修改与导出txt实践

数字图像处理这四个字听起来挺唬人,但落到具体操作上,无非就是让计算机按你的想法“摆弄”像素。我在一个模拟项目X里用了一套特别经典的基础处理流程:对图像做反白、改调色板、彩色转灰度,最后把像素数据导出成txt文件。单看每一…

2026/10/21 21:32:28 阅读更多 →
机器人大脑技术盘点:具身智能的感知、决策与数据闭环

机器人大脑技术盘点:具身智能的感知、决策与数据闭环

如果你的信息流最近也天天刷到“机器人大脑”这个词,你会发现一个很有意思的现象:每个人说的“大脑”根本不是同一个东西。有人指的是大语言模型,有人指的是运动控制系统,还有人指的是能理解物理世界的端到端模型。在2026年这个时…

2026/10/22 5:12:39 阅读更多 →

月新闻

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/21 21:50:56 阅读更多 →
Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/21 21:51:55 阅读更多 →
黑夜航拍船只数据集训练YOLOV5模型全流程解析

黑夜航拍船只数据集训练YOLOV5模型全流程解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/22 19:06:46 阅读更多 →