feat: 添加上证所截图功能并优化股票数据获取
- 新增上证所网页元素截图功能,使用Playwright实现 - 优化股票数据获取方式,改用新浪财经JS接口 - 调整情感分析评分规则为7级分类 - 添加截图显示组件到主界面 - 更新依赖项,替换playwright为selenium
This commit is contained in:
23
main.py
23
main.py
@@ -24,6 +24,7 @@ class BackendWorker(QObject):
|
||||
error_occurred = Signal(str)
|
||||
status_update = Signal(str)
|
||||
stock_data_fetched = Signal(str, float) # 股票数据获取信号
|
||||
sse_screenshot_fetched = Signal(str) # 上证所截图获取信号
|
||||
|
||||
def __init__(self, config_manager: ConfigManager, db_manager: DatabaseManager,
|
||||
spider: SpiderManager, analyzer: LLMAnalyzer):
|
||||
@@ -197,6 +198,21 @@ class BackendWorker(QObject):
|
||||
except Exception as e:
|
||||
logger.error(f"爬取股票数据失败: {str(e)}")
|
||||
|
||||
def fetch_sse_screenshot(self):
|
||||
"""爬取上证所网页元素截图"""
|
||||
try:
|
||||
logger.info("开始爬取上证所网页截图")
|
||||
screenshot_path = self.spider.fetch_sse_screenshot()
|
||||
|
||||
if screenshot_path:
|
||||
logger.info(f"成功获取截图: {screenshot_path}")
|
||||
self.sse_screenshot_fetched.emit(screenshot_path)
|
||||
else:
|
||||
logger.warning("未能获取有效的截图")
|
||||
|
||||
except Exception as e:
|
||||
logger.error(f"爬取截图失败: {str(e)}")
|
||||
|
||||
def manual_refresh(self):
|
||||
"""手动刷新"""
|
||||
logger.info("用户手动刷新")
|
||||
@@ -283,6 +299,7 @@ def main():
|
||||
worker.analysis_finished.connect(window.update_indicator)
|
||||
worker.error_occurred.connect(lambda msg: window.show_message("错误", msg))
|
||||
worker.stock_data_fetched.connect(window.add_waveform_data)
|
||||
worker.sse_screenshot_fetched.connect(window.update_sse_screenshot)
|
||||
|
||||
# 启动时从数据库初始化指示器显示
|
||||
worker._update_indicator()
|
||||
@@ -302,6 +319,12 @@ def main():
|
||||
stock_timer.start(60000) # 每分钟爬取一次股票数据
|
||||
logger.info("股票数据爬取定时器已启动,间隔60秒")
|
||||
|
||||
# 启动上证所截图爬取定时器
|
||||
screenshot_timer = QTimer()
|
||||
screenshot_timer.timeout.connect(worker.fetch_sse_screenshot)
|
||||
screenshot_timer.start(300000) # 每5分钟爬取一次截图
|
||||
logger.info("上证所截图爬取定时器已启动,间隔300秒")
|
||||
|
||||
# 确保应用退出时清理线程
|
||||
def cleanup():
|
||||
logger.info("清理资源,停止后台线程...")
|
||||
|
||||
Reference in New Issue
Block a user