首页 > 技术文章 > 命令行查看基金实时涨跌(附完整代码)

wangzhu 2020-12-20 22:57 原文

引言

闲来无事,经历了一年来的基金理财,看到某音上一些视频,心血来潮,自己也做一个这样的命令行程序

项目介绍

项目地址:https://github.com/JS-WangZhu/Fund2.0
所需环境:Python3
所需Python软件包:requests prettytable
自选基金:修改项目根目录下my_jijin.txt文件,其中每一行都是一个基金代码
运行方式:python3 main.py

关键部分

  1. 大盘实时数据获取(获取个股数据等同操作)
    采用新浪财经的数据接口:http://hq.sinajs.cn/list=sh601006,其中sh601006是个股的股票代码
    部分示例代码:
    def getGegu(gu_code):
        gegu = requests.get('http://hq.sinajs.cn/list=' + gu_code)
        gegu_status = gegu.status_code
        if gegu_status != 200:
            return False
        allinfo = gegu.text.split('"')[1].split(',')
        # print(allinfo)
        gegu_name = allinfo[0]
        # 今开
        gegu_jinkai = allinfo[1]
        # 昨收
        gegu_zuoshou = allinfo[2]
        # 现价
        gegu_xianjia = allinfo[3]
        # 今高
        gegu_jingao = allinfo[4]
        # 今低
        gegu_jindi = allinfo[5]
        # 竞买
        gegu_jingmai = allinfo[6]
        # 竞卖
        gegu_jingnai = allinfo[7]
        # 成交数
        gegu_chengjiaoshu = allinfo[8]
        # 成交额
        gegu_chengjiaoe = allinfo[9]
        # 买1
        gegu_mai1 = allinfo[10]
        # 买1价
        gegu_mai1p = allinfo[11]
        # 买2
        gegu_mai2 = allinfo[12]
        # 买2价
        gegu_mai2p = allinfo[13]
        # 买3
        gegu_mai3 = allinfo[14]
        # 买3价
        gegu_mai3p = allinfo[15]
        # 买4
        gegu_mai4 = allinfo[16]
        # 买4价
        gegu_mai4p = allinfo[17]
        # 买5
        gegu_mai5 = allinfo[18]
        # 买5价
        gegu_mai5p = allinfo[19]
        # 卖1
        gegu_nai1 = allinfo[20]
        # 卖1价
        gegu_nai1p = allinfo[21]
        # 卖2
        gegu_nai2 = allinfo[22]
        # 卖2价
        gegu_nai2p = allinfo[23]
        # 卖3
        gegu_nai3 = allinfo[24]
        # 卖3价
        gegu_nai3p = allinfo[25]
        # 卖4
        gegu_nai4 = allinfo[26]
        # 卖4价
        gegu_nai4p = allinfo[27]
        # 卖5
        gegu_nai5 = allinfo[28]
        # 卖5价
        gegu_nai5p = allinfo[29]
        # 日期
        gegu_date = allinfo[30]
        # 时间
        gegu_time = allinfo[31]
        res_info = {'gegu_name': gegu_name, 'gegu_jinkai': gegu_jinkai, 'gegu_zuoshou': gegu_zuoshou, 'gegu_xianjia': gegu_xianjia,\
                'gegu_jingao': gegu_jingao, 'gegu_jingmai':gegu_jingmai,'gegu_jingnai':gegu_jingnai,'gegu_chengjiaoshu':gegu_chengjiaoshu,\
                'gegu_chengjiaoe':gegu_chengjiaoe,'gegu_mai1':gegu_mai1,'gegu_mai1p':gegu_mai1p,'gegu_mai2':gegu_mai2,\
                'gegu_mai2p':gegu_mai2p,'gegu_mai3':gegu_mai3,'gegu_mai3p':gegu_mai3p,'gegu_mai4':gegu_mai4,'gegu_mai4p':gegu_mai4p,\
                'gegu_mai5':gegu_mai5,'gegu_mai5p':gegu_mai5p,'gegu_nai1':gegu_nai1,'gegu_nai1p':gegu_nai1p,'gegu_nai2':gegu_nai2,\
                'gegu_nai2p':gegu_nai2p,'gegu_nai3':gegu_nai3,'gegu_nai3p':gegu_nai3p,'gegu_nai4':gegu_nai4,'gegu_nai4p':gegu_nai4p,\
                'gegu_nai5':gegu_nai5,'gegu_nai5p':gegu_nai5p,'gegu_date':gegu_date,'gegu_time':gegu_time}
        return res_info
    
    
  2. 基金数据获取
    采用天天基金提供的实时基金数据接口:http://fundgz.1234567.com.cn/js/001186.js,其中001186是基金代码
    部分示例代码:
    def getJijin(ji_code):
    	jijin_gu = requests.get('http://fundgz.1234567.com.cn/js/' + ji_code + '.js?rt=1463558676006')
    	jijin_jin = requests.get('http://hq.sinajs.cn/list=f_'+ji_code)
    	status = jijin_gu.status_code
    	if status != 200:
        	return False
    	jijin_info = json.loads(jijin_gu.text[8:-2])
    	return jijin_info, jijin_jin.text
    

运行截图

推荐阅读