df9348ca955560d60e7d30e115e5ebbda8ebdbf9
这个版本的exe可以运行了。 移除Playwright相关代码,改用Selenium实现上证所网页截图功能。修改包括: 1. 删除Playwright依赖和配置逻辑 2. 添加Selenium相关配置和异常处理 3. 优化截图流程和日志记录 同时删除不再需要的build_new.bat打包脚本。
股吧人气指示器 (Guba Sentiment Indicator)
一个基于 Python + PySide6 的桌面悬浮小工具,专为股票投资者设计,通过爬取股吧或论坛评论,使用大语言模型分析投资者情绪倾向,并以直观的可视化方式展示市场人气冷暖程度。
主要功能
1. 智能评论爬取系统
- 自定义爬取规则: 支持通过XPath表达式自定义爬取目标,可灵活配置目标URL和内容选择器
- 智能去重机制: 使用内容哈希算法自动识别和过滤重复评论,避免重复分析
- 自适应刷新: 根据爬取结果动态调整刷新频率,无新内容时自动延长刷新间隔
- 多重解析策略: 采用 lxml + BeautifulSoup 双重解析机制,提高爬取成功率
- 用户代理配置: 支持自定义User-Agent,增强反爬虫适应性
2. 大语言模型情感分析
- 多模型支持: 支持OpenAI兼容API,包括NVIDIA API等主流大模型平台
- 精准情感评分: 为每条评论生成0-100分的情感倾向评分(0为极度悲观,100为极度乐观)
- 智能标签生成: 自动为分析结果生成情感标签(极度悲观、悲观、中立、乐观、极度乐观等)
- 重试机制: 集成API调用重试机制,应对网络波动和API限流
- 分析历史记录: 完整保存每次分析的结果和时间戳
3. 可视化情感指示器
- 动态指示灯: 基于分析结果实时更新的环形指示灯,颜色随情感倾向变化
- 渐变色彩系统:
- 0-30分: 蓝色系(悲观情绪)
- 30-70分: 绿黄渐变(中性情绪)
- 70-100分: 红色系(乐观情绪)
- 精确数值显示: 实时显示当前平均情感分数和整体情绪标签
- 发光特效: 采用发光效果增强视觉体验
3. 股票数据实时监控
- 上证指数监控: 通过新浪财经API实时获取上证指数数据
- 波形图展示: 以时间轴形式展示股票价格走势
- 数据点标记: 在波形图上精确标记每个数据点的时间和价格
4. 上证所网页截图功能
- 自动化截图: 使用Playwright自动截取上证所网页指定区域
- 元素定位: 通过XPath精确定位图表元素进行截图
- 定时更新: 每5分钟自动更新一次截图
- 历史管理: 自动管理截图文件,保留最新记录
6. 桌面客户端界面
- 悬浮窗口: 无边框设计,支持窗口拖拽和置顶显示
- 系统托盘: 集成系统托盘功能,支持最小化到托盘
- 透明度调节: 支持0.3-1.0范围内的透明度调节
- 配置对话框: 图形化配置界面,支持实时修改各项参数
- 状态显示: 实时显示当前运行状态和处理进度
7. 数据管理与持久化
- SQLite数据库: 使用SQLite存储所有评论、分析结果和历史数据
- 结构化存储: 评论表、分析历史表、配置表分离存储
- 数据统计: 实时统计爬取次数、分析次数等运行指标
- 自动清理: 支持历史数据管理和自动清理
8. 高级配置选项
- API配置: 支持自定义API Base URL、API Key、模型选择和超时设置
- 爬虫配置: 可调整目标URL、XPath表达式、刷新间隔等参数
- UI配置: 支持透明度、置顶状态、情感阈值等界面设置
- 阈值自定义: 可自定义"寒冷"(悲观)和"温暖"(乐观)的情感分界线
技术栈
核心技术
- Python 3.10+: 主要开发语言
- PySide6: 桌面GUI界面开发
- SQLite: 本地数据存储
- Requests: HTTP请求处理
- LXML: HTML解析和XPath支持
- BeautifulSoup4: 备选HTML解析器
- Selenium: Web自动化(备用方案)
- Playwright: 高级网页自动化和截图
AI技术
- OpenAI API: 大语言模型接口
- JSON解析: 结构化响应处理
- 情感分析算法: 0-100分评分系统
开发工具
- Loguru: 高级日志管理
- Playwright: 自动化浏览器控制
- PyInstaller: 应用程序打包(通过build.spec)
安装与配置
环境要求
- Python 3.10 或更高版本
- Windows/macOS/Linux 操作系统
安装步骤
- 克隆或下载项目
git clone <repository-url>
cd guba
- 安装Python依赖
pip install -r requirements.txt
- 安装Playwright浏览器驱动
playwright install chromium
- 配置API密钥
编辑
config.json文件,填入您的大语言模型API配置:
{
"llm_api": {
"base_url": "https://integrate.api.nvidia.com/v1",
"api_key": "your-api-key-here",
"model": "deepseek-ai/deepseek-r1",
"timeout": 120
}
}
- 配置爬取参数 在配置中设置目标URL和XPath表达式:
{
"spider": {
"target_url": "https://example.com",
"xpath": "//a[contains(@class, 'linkblack')]",
"fetch_interval": 15
}
}
运行程序
python main.py
配置详解
LLM API配置
base_url: 大模型API的基础URLapi_key: API访问密钥model: 使用的模型名称timeout: API请求超时时间(秒)retry_times: API调用失败时的重试次数
爬虫配置
target_url: 目标网站URLxpath: 用于提取评论的XPath表达式user_agent: HTTP请求的User-Agent字符串fetch_interval: 爬取间隔时间(秒)retry_times: 爬取失败重试次数retry_interval: 爬取重试间隔(秒)
UI配置
opacity: 窗口透明度(0.3-1.0)is_on_top: 是否置顶显示thresholds: 情感阈值设置cold: 悲观阈值(默认30)warm: 乐观阈值(默认70)
数据库配置
path: SQLite数据库文件路径
日志配置
level: 日志级别(INFO/DEBUG/ERROR等)path: 日志文件路径
使用说明
基本操作
- 启动程序后,主界面将显示情感指示器
- 程序自动开始爬取评论并分析情感
- 指示器颜色和数值实时反映市场情绪
- 波形图显示股票价格走势
按钮功能
- 刷新: 手动触发一次评论爬取和分析
- 配置: 打开配置对话框修改各项参数
- 退出: 关闭应用程序
系统托盘菜单
- 显示: 显示主窗口
- 隐藏: 隐藏到系统托盘
- 退出: 完全退出程序
高级功能
批量分析模式
支持一次性分析多条评论,适用于历史数据分析场景。
实时数据统计
程序会统计以下运行指标:
- 爬取网站次数
- 提交API分析次数
- 评论总数和已分析数
- 平均情感分数趋势
自定义情感标签
系统根据以下规则自动分类情感:
- 0-30分: 极度悲观
- 30-39分: 悲观
- 39-45分: 偏悲观
- 45-55分: 中立
- 55-65分: 偏乐观
- 65-70分: 乐观
- 70-100分: 极度乐观
故障排除
常见问题
-
无法获取评论
- 检查目标URL是否可访问
- 验证XPath表达式是否正确
- 确认网络连接正常
-
API调用失败
- 检查API Key是否正确
- 确认API服务是否可用
- 查看网络连接和防火墙设置
-
界面显示异常
- 检查PySide6是否正确安装
- 尝试调整透明度设置
日志文件
运行日志保存在 guba.log 文件中,记录所有操作和错误信息。
统计信息
程序退出时会生成运行统计信息,保存在 statistics.txt 文件中。
打包发布
项目提供PyInstaller打包配置(build.spec),可将应用打包为独立可执行文件:
# 安装PyInstaller
pip install pyinstaller
# 打包应用
pyinstaller build.spec
# 执行文件将在dist目录下生成
注意事项
- API费用: 使用大语言模型API可能产生费用,请注意控制调用频率
- 网络环境: 确保网络连接稳定,以保证爬取和API调用的正常进行
- 反爬虫: 遵守目标网站的robots.txt协议和使用条款
- 数据隐私: 所有数据本地存储,不会上传到第三方服务器
开发扩展
模块结构
main.py: 主程序入口,负责组件初始化和信号连接main_window.py: GUI界面和用户交互处理config_manager.py: 配置文件管理和持久化database.py: SQLite数据库操作和数据管理spider.py: 网页爬取和数据提取llm_analyzer.py: 大语言模型情感分析waveform_widget.py: 股票数据波形图绘制screenshot_manager.py: 网页截图功能
二次开发
项目采用模块化设计,易于扩展新功能:
- 可添加新的爬取目标和解析规则
- 支持接入其他大模型API
- 可扩展更多数据可视化方式
- 支持多股票同时监控
许可证
本项目仅供学习交流使用,请遵守相关法律法规和网站使用条款。
Description
Languages
Makefile
66.9%
Rust
17.9%
Python
15%
Java
0.1%