一个简洁高效的微博命令行客户端,支持查看关注、特别关注和分组微博内容。
作者: Xue Zhouyang xuezhouyang@gmail.com
重要提示:请在使用本软件前仔细阅读以下声明
-
本软件仅供作者个人本地测试使用,不得用于任何商业目的或获利行为。
-
任何个人或实体使用本软件应自行承担全部风险。作者明确声明不对使用本软件可能导致的任何直接、间接、偶然、特殊、惩罚性或后果性损害承担任何责任,无论此类损害是否可预见,也无论责任理论如何。
-
使用者必须遵守所有适用的国家、地区和国际法律法规,包括但不限于计算机安全法、网络安全法、数据保护法和隐私法。作者不对任何违反法律法规的使用行为承担责任。
-
地域限制: 严禁在中华人民共和国和美利坚合众国境内使用本软件,或通过本软件请求、访问、处理或存储与这两国有利益关联或受其管辖的任何数据、信息或资产。
-
任何基于本项目的二次开发、修改、分发或使用导致的任何直接或间接后果,包括但不限于法律责任、数据泄露、系统损害或任何其他形式的损失,均与原作者无关,原作者不承担任何法律或道德责任。
-
使用本软件即表示您确认已阅读、理解并同意遵守上述所有条款和条件。如不同意,请立即停止使用本软件并删除所有相关文件。
完整的法律条款请参阅LICENSE文件。
✅ 支持查看关注的微博内容
✅ 支持查看特别关注的微博内容
✅ 支持查看任意分组的微博内容
✅ 支持分页浏览微博数据
✅ 美观的终端界面展示
✅ 自动刷新功能
✅ 自动登录功能
✅ 无需手动输入凭据,直接使用浏览器中的会话信息
✅ 简洁的命令行接口
✅ HTML解析结果缓存机制,提高性能
# 使用pip安装依赖 pip install -r hyperweibo/requirements.txt # 或使用简化命令 ./weibo install- 确保您已经在浏览器(Chrome、Firefox、Edge或Safari)中登录微博
- 如果未登录,程序会自动打开浏览器让您进行登录
本工具提供了简洁的命令行接口:
| 命令 | 说明 |
|---|---|
./weibo home | 查看关注的微博内容 |
./weibo special | 查看特别关注的微博内容 |
./weibo mock | 使用模拟数据(无需登录) |
./weibo group <组ID> | 查看指定分组的微博内容 |
./weibo clean | 清理缓存数据 |
./weibo install | 安装依赖 |
./weibo help | 显示帮助信息 |
./weibo license | 显示许可协议 |
./weibo agree | 查看并同意许可协议 |
可以在命令后添加以下选项:
# 指定浏览器获取登录信息 ./weibo home -b firefox # 设置自动刷新间隔(秒) ./weibo home -r 30 # 从指定页码开始查看 ./weibo home -p 2 # 组合使用选项 ./weibo special -b chrome -r 60 -p 1也可以直接使用Python命令运行:
# 基本用法 python hyperweibo.py [选项]完整参数说明:
| 参数 | 说明 |
|---|---|
-h, --help | 显示帮助信息并退出 |
-b, --browser | 指定浏览器获取登录信息 (默认: chrome) |
-s, --special | 查看特别关注的微博 |
-r, --refresh | 自动刷新间隔(秒),0表示不自动刷新 |
-m, --mock | 使用模拟数据(无需登录) |
-c, --cookie | 提供微博会话cookie |
-p, --page | 起始页码,从1开始 (默认: 1) |
-g, --group | 指定分组ID |
程序运行后,会显示类似以下的界面:
HyperWeibo 命令行工具 关注的微博(第1页) 共 20 条记录 ✓ 用户名 2小时前: 微博内容示例,包含各种信息和话题标签。#话题标签# [图片: 2张] 转发: 5 | 评论: 12 | 点赞: 45 ──────────────────────────────────────────────────────────────────────────────── ✓ 另一用户 5小时前: 另一条微博内容,展示了不同的格式和内容。 转发@其他用户: 这是被转发的内容,用于展示转发功能。 转发: 2 | 评论: 8 | 点赞: 23 ──────────────────────────────────────────────────────────────────────────────── 操作菜单 1. 刷新当前页 2. 切换到特别关注 3. 选择分组 n. 下一页 p. 上一页 g. 跳转到指定页 q. 退出 请选择 [1/2/3/n/p/g/q] (1): 程序运行后,可以使用以下操作:
| 按键 | 功能 |
|---|---|
1 | 刷新当前页面 |
2 | 切换显示模式(关注/特别关注) |
3 | 显示分组列表并选择分组 |
n | 查看下一页 |
p | 查看上一页 |
g | 跳转到指定页码 |
q | 退出程序 |
选择分组时,会显示类似以下界面:
分组列表 ┏━━━━┳━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━┓ ┃ 序号 ┃ 组ID ┃ 组名称 ┃ ┡━━━━╇━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━┩ │ 1 │ xxxxxxxxxxxxxxxxxx │ 特别关注 │ │ 2 │ xxxxxxxxxxxxxxxxxx │ 明星博主 │ │ 3 │ xxxxxxxxxxxxxxxxxx │ 科技资讯 │ │ 4 │ xxxxxxxxxxxxxxxxxx │ 朋友 │ └────┴──────────────────────┴───────────┘ 请选择分组序号(输入0返回): 为了便于理解,以下是命令行中使用的术语与实际功能的对照:
| 命令中的术语 | 实际功能 |
|---|---|
| home | 查看关注的微博 |
| special | 查看特别关注的微博 |
| group | 查看指定分组的微博 |
| mock | 使用模拟数据 |
| clean | 清理缓存数据 |
| install | 安装依赖 |
| help | 显示帮助信息 |
| license | 显示许可协议 |
| agree | 查看并同意许可协议 |
如果程序无法从浏览器获取会话信息,或者会话已过期,程序会自动打开浏览器让您进行登录。登录成功后,按回车键继续,程序会自动重新获取会话信息并继续运行。
本工具实现了多种性能优化机制:
- HTML解析结果缓存:避免重复解析相同的内容
- 分组数据缓存:减少重复请求分组信息
- 微博时间线缓存:减少频繁刷新时的网络请求
- 用户信息缓存:提高用户信息显示速度
缓存过期时间设置:
- 分组列表:300秒
- 微博时间线:300秒
- 用户信息:3600秒
- HTML解析结果:300秒
如果遇到"Unable to get key for cookie decryption"错误,这通常是因为browser_cookie3库无法获取用于解密cookie的密钥。这在较新版本的Chrome浏览器上尤为常见。解决方案:
- 程序会自动尝试使用
pycookiecheat库作为备选方案获取cookie - 如果仍然失败,程序会自动打开浏览器让用户登录微博
- 如果以上方法都失败,程序会切换到模拟数据模式
如果您希望手动解决此问题,可以:
# 安装pycookiecheat库 pip install pycookiecheat # 或者直接使用cookie字符串运行程序 ./run_with_cookie.sh
./weibo mock)
本项目使用修改版MIT许可证。详情请参阅LICENSE文件。
Copyright (c) 2025 Xue Zhouyang xuezhouyang@gmail.com
本软件实现了自动的许可协议同意机制,确保用户在使用前已阅读并同意许可条款:
- 首次运行任何命令(除了
help、license和agree)时,系统会自动显示许可协议并要求用户同意 - 用户必须滚动查看完整的中文版协议才能进行同意操作
- 用户同意后,系统会记录同意状态,后续使用不再需要重复同意
- 用户可以随时通过
./weibo agree -f命令重新查看并确认协议 - 用户可以通过
./weibo license命令查看完整的许可协议文本
注意: 未同意许可协议的用户将无法使用本软件的核心功能。