python 股票分析api,2020-04-21 用python3 按周分析新浪接口股票数据(篇一:下载、存储篇)...

思路概览一:下载存储

股票数据量大,有一定的涨跌模式,为了节约看股时间,今天我们用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,";

代码如下:

47eea7c964b0

这里因为给页面coding为gb2312,在linux下转换有乱码问题,因此注释掉了

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

47eea7c964b0

打包成类,还不用自己关闭文件了,真是方便,说一下如果程序较小,文件不关闭是没有问题的,但是如果反复打开,不关闭就容易发生内存错误。

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

47eea7c964b0

这里注意,要及时使用commit函数提交数据库,不然直到程序结束才会提交,容易因意外退出而半途而废

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

47eea7c964b0

将股票处理成用”,”分割的字符串sh601818,光大银行,3.580,3.590,3.56..最后生成列表,方便数据提取

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

47eea7c964b0

解析每个字段,方便数据库的读写,然后最后方便调试,谢了to_string函数,来源于java思想。

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

47eea7c964b0

功能如下:一、从代码列表中读取sh000001格式的代码,使用SQL创建表;二、获得股票页面数据,插入数据库,如果异常写入当日日志,同时使用进度表示处理游标。

运行界面如下:

47eea7c964b0

如果出现错误,打印schema,这里发现出现错误的都是当日没开盘的股票

运行结果如下:

47eea7c964b0

可以按照日期删选,方便后续分析

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值