思路概览一:下载存储
股票数据量大,有一定的涨跌模式,为了节约看股时间,今天我们用python3,量化分析有关股票数据。
总体思路:使用通达信获得所有股票代码,然后通过requests 模块下载http://hq.sinajs.cn/list=股票数据,然后以日期为主键保存到sqlite3数据库。
模块概览:
本文设计了五个模块:分别是Spider模块、File模块、SQL模块、SinaStockData模块和Stock模块,各部分功能如下:(这里说明一下,之前上一期写了python3爬取uumtu图片,发现代码重用率太高,所以决定把代码包装成类,方便后续使用)
Spider模块:这里比较简单,就是使用爬虫通用框架下载指定路径的股票数据,如:http://hq.sinajs.cn/list=sh601818的数据是这样的:
var hq_str_sh601818="光大银行,3.580,3.590,3.560,3.590,3.560,3.560,3.570,74935705,267661999.000,5622218,3.560,4639800,3.550,1195300,3.540,512000,3.530,273400,3.520,83600,3.570,2495580,3.580,3009400,3.590,2424100,3.600,2471000,3.610,2020-04-21,15:00:16,00,";
代码如下:

File模块:主要功能是把股票代码从000001读入文件后,通过Spider测试后转换成sh000001模式,方面获得每只股票的链接,如http://hq.sinajs.cn/list=sh601818。同时加入异常处理机制,将发生错误的数据库操作,写入log文件。File模块功能如下:

SQL模块:连接数据库,读取,关闭数据库,很简单

SinaStockData模块:类似于正则表达式,本人还没学习相关模块,就直接用string函数处理了

Stock模块:把SinaStockData的列表数据打包成类,把各段数据转换成stock.get_code()的模式,代码如下:

最后书写主函数,处理数据库的插入,读取,列表数据的插入,然后写一个脚本,每天15:00以后自动运行程序即可,并把错误写入log文件。代码如下:

运行界面如下:

运行结果如下:

网友评论