失眠网,内容丰富有趣,生活中的好帮手!
失眠网 > 基于python 的股票行情查询系统开发(一)

基于python 的股票行情查询系统开发(一)

时间:2018-12-27 18:01:25

相关推荐

基于python 的股票行情查询系统开发(一)

基于python 的股市行情查询系统开发(一)

一、前言1、开发背景二、开发计划1、开发语言2、数据api获取3、后续计划今日进度1、前期准备2、获取股票代码

一、前言

1、开发背景

作为一个出入股市的小白程序员,在没有金融知识的加成下,自然是成绩惨淡,因此我痛定思痛,决定通过程序的力量,进行一个质的交易水平提高的方法,那就是自己写一个股票量化行情系统,再搭配好强大的交易策略,摒弃人性的贪婪和恐惧。好了,废话不多说了,开搞!

二、开发计划

1、开发语言

typescript

查阅了股票中的大的名称术语等等 ,看看用什么开发比较好。首先是考虑了数据中的比较好的vscode 的插件开发,然而我并不会typescript(js)开发,暂时先不考虑哈哈哈哈哈哈。而且股票数据的获取也是异常的僵硬,想着搞点免费的数据接口用用,然而大部分的数据接口都已经封装好了,个人想法想从零开始搭建一个自己的股票数据查询软件,可以自己定制各种公式数据进行计算,图表啊等等(我只是想想。。。)。

python

所以,想来想去正好把之前学的python重新再捡起来,而且python中的各种模块啊开发起来比较高效和方便,正好也提升一下自己的编码能力。顺便练练自己的炒股水平哈哈哈。

2、数据api获取

查看东方财富的网站,看看爬虫能不能直接网页上把数据爬了。结果爬出来发现数据竟然变成“–”,一脸懵逼,网上查了查发现原来是用了ajax动态获取数据的方法,数据再加载到浏览器页面上的,这个还得分析他的请求参数,之后可能回去研究研究,遂放弃。第二种方法,selenium直接模拟浏览器进行抓取,但是太卡了影响抓取数据,果断看看还有什么办法。就在我不知道如何是好时,突然!有网友说有网易有免费的!api接口!卧槽,那还等什么直接搞起。

这里我也会放出相关的免费数据api接口:

lg507股票数据

新浪实时数据接口 (list后面的参数进行修改)

网易财经历史数据接口

需要注意的是,网易的接口直姐点击为csv文件,直接可以用爬虫进行抓取,之后存入mysql啊什么数据库也方便的多。

http://quotes./service/chddata.html?code=0600772&end=0307fields=TCLOSE;HIGH;LOW;TOPEN;CHG;PCHG;TURNOVER;VOTURNOVER;VATURNOVER;TCAP;MCAP

code中股票代码第一位0代表沪市、1代表深市,后面为股票代码(港股为5位)。

enddate中输入日期为从发行该只股票到此日期期间的所有交易数据

3、后续计划

后续会添加一些其他的交易行情,比如期货啊、黄金、比特币、美股等等啥的(疯狂画饼中。。。)

今日进度

1、前期准备

在开始之前,必须知道,ide得用什么。这次,我选择了vscode进行整个系统的开发,因为确实轻量级的ide以及简洁的界面对于开发者来说是具有非常大的正面效果。vscode就有这样的特点,so ,let’s go 。

2、获取股票代码

首先,使用re模块进行网站的请求。

importre'''取得网页的内容'''def getHTMLText(url,timeout=30):try:r = requests.get(url,timeout = 30)r.raise_for_status()r.encoding = "UTF-8"return r.textexcept:return '产生异常'

接着,我们通过获取到HTML内容使用BeautifulSoup对数据进行处理,将获得的数据写入csv文件中。

from bs4 import BeautifulSoup as bsdef get_stock_list(html): #沪市final_list = []final_list.append(['股票名称','股票代码'])soup = bs(html,'html.parser')body = soup.bodydata = body.find('ul',{'class':'ngblistul2'})data_hide = body.find('ul',{'class':'ngblistul2 hide'})# ngblistul2 hidelis = data.find_all('li') + data_hide.find_all('li')for li in lis:data1 = li.find_all('a')data2 = data1[0].stringmatch1 = re.findall("[0-9]{6}",data2) #匹配前6位代码 match2 = re.sub(u"\\(.*?\\)", "", data2)final_list.append([match2,match1[0]]) return final_listdef write_to_csv(lists): #写入csvtry:with open('D:\\股票数据\\stocklist.csv','w',newline='') as csvfile:writer = csv.writer(csvfile)for row in lists:writer.writerow(row)except:return '产生异常' def read_from_csv(file): #读取csvstock_list = []try:with open(file,'r') as csvfile:reader = csv.reader(csvfile)for line in reader:stock_list.append(line)return stock_list except:return '产生异常'

来,让我们执行一下:

def main():url = '/remenba.aspx'html = sus.getHTMLText(url)stock_list = get_stock_list(html)write_to_csv(stock_list)stock_list = sus.read_from_csv("D:\\股票数据\\stocklist.csv")print(stock_list)main()

效果如图:

再来看看csv文件:

OK,就此获取股票名称和股票代码的工作搞定。

下篇开始进行历史行情的获取以及数据的存取

如果觉得《基于python 的股票行情查询系统开发(一)》对你有帮助,请点赞、收藏,并留下你的观点哦!

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。