上海期货交易所、能源中心、郑州商品交易所、大连商品交易所、广州期货交易所、中国金融期货交易所、证监会、上海证券交易所、深圳证券交易所门户网站公告实时抓取与通知推送
点击空白处退出提示
上海期货交易所、能源中心、郑州商品交易所、大连商品交易所、广州期货交易所、中国金融期货交易所、证监会、上海证券交易所、深圳证券交易所门户网站公告实时抓取与通知推送
自动定时监控上期所、能源中心、中金所、大商所、郑商所、广期所、证监会、深交所、上交所等 9 家机构的官网公告
支持 WebView2(Chromium)渲染动态页面,突破反爬 WAF 限制
公告去重入库(SQLite),避免重复推送
邮件推送 + 短信推送
系统托盘最小化运行
日志记录
个人职责:独立完成全部需求分析、架构设计、编码实现与测试部署(从旧版 .NET Framework 4.5 到 .NET 8 的全面重构)
技术难点:
反爬 WAF 突破:郑商所、广期所等 5 家交易所采用 WAF 防护 + JS 动态渲染,传统 HttpClient 无法获取有效数据。使用 WebView2(Chromium 内核)替代旧版 IE WebBrowser,成功绕过防护并精确提取公告内容
多交易所异构解析:9 家交易所 HTML 结构各不相同,部分为动态 AJAX 加载、部分为服务端渲染。设计统一解析接口 + 各自独立的正则/DOM 解析器
跨线程 UI 同步:WebView2 操作必须在 UI 线程,而定时轮询在后台线程。使用 BeginInvoke + TaskCompletionSource 实现异步编排,解决 CoreWebView2 线程访问异常
分层清晰:SchedulerService(调度层)→ Form1.ScrapeAllAsync(编排层)→ XxxParser(解析层)→ DatabaseService/NotificationService(数据/通知层)
双引擎策略:WebView2 用于反爬严格的交易所,HttpClient 用于可直接 HTTP 抓取的交易所,统一返回标准化 Notice 模型
去重机制:4 字段联合判重(exchange + url + releaseTime + content),避免重复通知
发布方式:.NET 8 框架依赖部署,目标机仅需安装 Desktop Runtime 即可运行
项目成果:
代码量约 3000 行,覆盖 9 家交易所 + 邮件 + 短信推送
单文件编译仅



评论