Skip to content

xuezhouyang/hyperweibo

Repository files navigation

HyperWeibo 命令行工具

一个简洁高效的微博命令行客户端,支持查看关注、特别关注和分组微博内容。

作者: Xue Zhouyang xuezhouyang@gmail.com

📋 目录

法律免责声明与使用限制

重要提示:请在使用本软件前仔细阅读以下声明

  1. 本软件仅供作者个人本地测试使用,不得用于任何商业目的或获利行为。

  2. 任何个人或实体使用本软件应自行承担全部风险。作者明确声明不对使用本软件可能导致的任何直接、间接、偶然、特殊、惩罚性或后果性损害承担任何责任,无论此类损害是否可预见,也无论责任理论如何。

  3. 使用者必须遵守所有适用的国家、地区和国际法律法规,包括但不限于计算机安全法、网络安全法、数据保护法和隐私法。作者不对任何违反法律法规的使用行为承担责任。

  4. 地域限制: 严禁在中华人民共和国和美利坚合众国境内使用本软件,或通过本软件请求、访问、处理或存储与这两国有利益关联或受其管辖的任何数据、信息或资产。

  5. 任何基于本项目的二次开发、修改、分发或使用导致的任何直接或间接后果,包括但不限于法律责任、数据泄露、系统损害或任何其他形式的损失,均与原作者无关,原作者不承担任何法律或道德责任。

  6. 使用本软件即表示您确认已阅读、理解并同意遵守上述所有条款和条件。如不同意,请立即停止使用本软件并删除所有相关文件。

完整的法律条款请参阅LICENSE文件。

功能特点

✅ 支持查看关注的微博内容
✅ 支持查看特别关注的微博内容
✅ 支持查看任意分组的微博内容
✅ 支持分页浏览微博数据
✅ 美观的终端界面展示
✅ 自动刷新功能
✅ 自动登录功能
✅ 无需手动输入凭据,直接使用浏览器中的会话信息
✅ 简洁的命令行接口
✅ HTML解析结果缓存机制,提高性能

安装依赖

# 使用pip安装依赖 pip install -r hyperweibo/requirements.txt # 或使用简化命令 ./weibo install

使用方法

准备工作

  1. 确保您已经在浏览器(Chrome、Firefox、Edge或Safari)中登录微博
  2. 如果未登录,程序会自动打开浏览器让您进行登录

命令行使用方式

本工具提供了简洁的命令行接口:

命令 说明
./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命令运行:

# 基本用法 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 查看并同意许可协议

自动登录功能

如果程序无法从浏览器获取会话信息,或者会话已过期,程序会自动打开浏览器让您进行登录。登录成功后,按回车键继续,程序会自动重新获取会话信息并继续运行。

性能优化

本工具实现了多种性能优化机制:

  1. HTML解析结果缓存:避免重复解析相同的内容
  2. 分组数据缓存:减少重复请求分组信息
  3. 微博时间线缓存:减少频繁刷新时的网络请求
  4. 用户信息缓存:提高用户信息显示速度

缓存过期时间设置:

  • 分组列表:300秒
  • 微博时间线:300秒
  • 用户信息:3600秒
  • HTML解析结果:300秒

常见问题

无法获取浏览器Cookie

如果遇到"Unable to get key for cookie decryption"错误,这通常是因为browser_cookie3库无法获取用于解密cookie的密钥。这在较新版本的Chrome浏览器上尤为常见。解决方案:

  1. 程序会自动尝试使用pycookiecheat库作为备选方案获取cookie
  2. 如果仍然失败,程序会自动打开浏览器让用户登录微博
  3. 如果以上方法都失败,程序会切换到模拟数据模式

如果您希望手动解决此问题,可以:

# 安装pycookiecheat库 pip install pycookiecheat # 或者直接使用cookie字符串运行程序 ./run_with_cookie.sh

注意事项

⚠️ 本工具仅用于个人学习和研究
⚠️ 请勿频繁刷新,以免影响服务器性能
⚠️ 如遇到问题,请确保您的浏览器已正确登录微博
⚠️ 在公共场合使用时,建议使用模拟数据模式(./weibo mock

许可证

本项目使用修改版MIT许可证。详情请参阅LICENSE文件。

Copyright (c) 2025 Xue Zhouyang xuezhouyang@gmail.com

许可协议同意机制

本软件实现了自动的许可协议同意机制,确保用户在使用前已阅读并同意许可条款:

  1. 首次运行任何命令(除了helplicenseagree)时,系统会自动显示许可协议并要求用户同意
  2. 用户必须滚动查看完整的中文版协议才能进行同意操作
  3. 用户同意后,系统会记录同意状态,后续使用不再需要重复同意
  4. 用户可以随时通过./weibo agree -f命令重新查看并确认协议
  5. 用户可以通过./weibo license命令查看完整的许可协议文本

注意: 未同意许可协议的用户将无法使用本软件的核心功能。

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published