新浪云 股票实时筛选系统 设计

该系统通过爬虫从新浪获取实时股票数据,每十分钟更新一次,利用Crontab在新浪云上实现定时任务。数据经过统计处理,包括计算20日均值等,然后筛选并缓存以提高效率。WebUI提供用户界面,StockFilter模块读取缓存数据,SelfSelectStock模块实现了自选股功能,用邮件代替短信提醒。UserManage模块采用了userCake进行用户管理,邮件发送使用新浪云API和QQ SMTP服务器。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

系统网址是: http://pnpstock.sinaapp.com/


系统结构如下

Crawl

股票数据是从网页上直接抓取过来的

经过调研: "http://hq.sinajs.cn/rn=6aqcc&list=xxxxxx,yyyyyy" 获得的数据还是比较好 parse的

比如用 http://hq.sinajs.cn/rn=6aqcc&list=sh600839,sz000825, 就将得到

var hq_str_sh600839="四川长虹,2.12,2.12,2.14,2.14,2.11 ...
var hq_str_sz000825="太钢不锈,3.22,3.24,3.24,3.24,3.21 ...

而我们要的实时股票数据,所以数据必须定时抓取(设定是每十分钟)

以前我的系统跑在 Window + Apache上,因此我在windows定义计划任务,才定时抓取。  新浪云支持 crontab, 更好实现了

抓取的数据存在 StockData 中

Statistics

抓取的数据必须整理

a) 合并到最基础每日股票数据中

b) 求20日的均值等统计信息

       这其中有些技巧,因为20日是指的20个交易日,并不能简单在时间上-20天

c) 把股票筛选入库

     这相当于做 cache, 如果用户每次访问在给他筛选,占cpu, 运行慢, 用户量一大服务器就吃不消了

      每一个筛选方式都是一个较为复杂连接多表,有多个条件的 sql select 语句


统计后保存的数据就是 SumaryData

StockFilter

因为已经做了筛选和cache, StockFilter工作不多, 只是读取 cache 表的数据而已

WebUI

就是浏览器中界面

当用户正在看数据时,数据可能已经更新, 所以应该定时更新浏览器

SelfSelectStock

就是自选股。为何做这个模块? 这是我以前用sina的股价短信提醒(每月5元钱),觉得还比较好用;后来换中国电信手机,sina竟然不支持, 所以就自己做这个功能;不过改为邮件提醒,因为网上的短信服务提供商是要收钱的。

UserManage

用户管理是个复杂的模块,涉及登陆,注册,注销,session 追踪,改密码,改邮件,确认邮件等等,我自己完成这些功能很消耗时间,而这些功能经过多年开发应该有成熟的代码,找一个修改一下为我所用。最后我选择了 userCake

Mail

我开发的原始版本没有使用 新浪云 的邮件 api, 后来改为用 新浪云的,接口比较简单, smtp server 我选择smtp.qq.com (需要在QQ上注册一个邮箱账号), 还比较稳定

本来还想给用户发送股票筛选信息,因为用户可以直接访问网页看筛选结果,此功能没有必要


相关文章


评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值