Skip to content

Commit f98e44c

Browse files
committed
完善基金数据分析
1 parent 24b73fd commit f98e44c

3 files changed

Lines changed: 150 additions & 32 deletions

File tree

fund_analysis.py

Lines changed: 84 additions & 32 deletions
Original file line numberDiff line numberDiff line change
@@ -4,12 +4,16 @@
44
import requests
55
import time
66
import json
7+
import os
78

89

10+
# app接口
911
url = 'http://fundex2.eastmoney.com/FundWebServices/MyFavorInformation.aspx?t=kf&s=desc&sc=&pstart=0&psize=10000'
1012

13+
# 待处理基金编号
1114
fund_list = ['100056', '161024']
1215

16+
# 基金字典对应关系
1317
fund_dict = {
1418
'gztime': u'估值时间',
1519
'shzt': u'赎回状态',
@@ -30,64 +34,112 @@
3034
'isbuy': '1'
3135
}
3236

37+
# 组装接口
3338
fc = ','.join(fund_list)
34-
3539
url += '&fc=' + fc
3640

37-
read_list = json.loads(requests.get(url).text)
41+
42+
def timed_task(func, interval=60, start_time='2015-06-18 09:00:00', end_time='2015-06-18 15:00:00'):
43+
"""
44+
循环定时任务
45+
:param func:
46+
:param interval:
47+
:return:
48+
"""
49+
run_time = time.mktime(time.strptime(start_time, '%Y-%m-%d %H:%M:%S'))
50+
exit_time = time.mktime(time.strptime(end_time, '%Y-%m-%d %H:%M:%S'))
51+
rest_time = run_time - time.time() # 启动剩余时间
52+
if rest_time > 0:
53+
print '程序等待执行'
54+
while True:
55+
while run_time <= time.time():
56+
func()
57+
time.sleep(interval) # 等待循环
58+
if exit_time <= time.time():
59+
print '程序执行完毕'
60+
break
3861

3962

4063
def save_json(read_dict):
41-
# 保存json至服务器
42-
import os
64+
"""
65+
保存json文件至服务器
66+
:param read_dict:
67+
:return:
68+
"""
4369
file_path = 'static/json/'
4470
if not os.path.isdir(file_path):
4571
os.mkdir(file_path)
46-
filename = 'static/json/' + read_dict[u'基金编号'] + '.json'
47-
result_json = json.dumps(read_dict, ensure_ascii=False, indent=0) + '\n'
72+
filename = file_path + read_dict[u'基金编号'] + '.json'
73+
result_json = json.dumps(read_dict, ensure_ascii=False) + '\n' # 单行存储
4874
with open(filename, 'a') as f:
4975
f.write(result_json.encode('utf-8'))
5076

5177

52-
def run():
53-
for i in read_list:
54-
item = {}
55-
# 基本信息
56-
item[u'记录时间'] = time.strftime('%H:%M')
57-
item[fund_dict['fundcode']] = i['fundcode'] # 基金编号
58-
item[fund_dict['name']] = i['name'] # 基金名称
59-
item[fund_dict['jjlx']] = i['jjlx'] # 基金类型
60-
# 估值信息
61-
item[fund_dict['gztime']] = i['gztime'] # 估值时间
62-
item[fund_dict['gsz']] = i['gsz'] # 估算净值
63-
item[fund_dict['gszzl']] = i['gszzl'] # 估算涨幅
64-
# 历史信息
65-
item[fund_dict['jzrq']] = i['jzrq'] # 净值日期
66-
item[fund_dict['dwjz']] = i['dwjz'] # 单位净值
67-
item[fund_dict['rzzl']] = i['rzzl'] # 日增长率
68-
print json.dumps(item, ensure_ascii=False, indent=4)
69-
save_json(item)
78+
def read_line(code):
79+
"""
80+
逐行读取数据
81+
:param code:
82+
:return:
83+
"""
84+
filename = 'static/json/' + code + '.json'
85+
with open(filename, 'r') as files:
86+
for each_line in files:
87+
print each_line
88+
89+
90+
def run_read():
91+
"""
92+
读取本地数据
93+
"""
94+
for i in fund_list:
95+
read_line(i)
96+
97+
98+
def run_write():
99+
"""
100+
获取数据,写入本地
101+
"""
102+
response = requests.get(url)
103+
content = response.text
104+
read_list = json.loads(content)
105+
for item in read_list:
106+
item_dict = {
107+
# 基本信息
108+
u'记录时间': time.strftime('%H:%M'),
109+
fund_dict['fundcode']: item['fundcode'],
110+
fund_dict['name']: item['name'],
111+
fund_dict['jjlx']: item['jjlx'],
112+
# 估值信息
113+
fund_dict['gztime']: item['gztime'],
114+
fund_dict['gsz']: item['gsz'],
115+
fund_dict['gszzl']: item['gszzl'],
116+
# 历史信息
117+
fund_dict['jzrq']: item['jzrq'],
118+
fund_dict['dwjz']: item['dwjz'],
119+
fund_dict['rzzl']: item['rzzl']
120+
}
121+
print json.dumps(item_dict, ensure_ascii=False, indent=4)
122+
save_json(item_dict)
70123

71124

72125
if __name__ == "__main__":
73-
run()
126+
# run_write()
127+
# run_read()
128+
timed_task(run_write, 5)
74129

75130

76131
"""
132+
因为只有app接口数据实时更新
133+
这里采用app接口作为数据来源
134+
[使用Fiddler捕获接口即可]
135+
77136
fc=100056,161024
78137
9点-16点
79138
整个过程9小时
80139
2分钟抓取一次
81140
9*60/2 = 270次/天
82141
83142
# 100056.json 名称为基金编号
84-
analysis_list = []
85143
86144
每2分钟 追加写入
87-
{u'编号': xxx, u'名称': xxx, u'时间': xxx, u'估值': xxx},
88-
{u'编号': xxx, u'名称': xxx, u'时间': xxx, u'估值': xxx},
89-
{u'编号': xxx, u'名称': xxx, u'时间': xxx, u'估值': xxx},
90-
{u'编号': xxx, u'名称': xxx, u'时间': xxx, u'估值': xxx},
91-
{u'编号': xxx, u'名称': xxx, u'时间': xxx, u'估值': xxx},
92-
{u'编号': xxx, u'名称': xxx, u'时间': xxx, u'估值': xxx},
93145
"""

static/json/100056.json

Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,33 @@
1+
{"日增长率": "-0.1202", "基金编号": "100056", "基金名称": "富国低碳环保", "估算涨幅": "2.54", "估值时间": "2015-06-17", "估算净值": "3.4126", "净值日期": "2015-06-17", "单位净值": "3.3240", "记录时间": "22:46", "基金类型": "股票型"}
2+
{"日增长率": "-0.1202", "基金编号": "100056", "基金名称": "富国低碳环保", "估算涨幅": "2.54", "估值时间": "2015-06-17", "估算净值": "3.4126", "净值日期": "2015-06-17", "单位净值": "3.3240", "记录时间": "23:08", "基金类型": "股票型"}
3+
{"日增长率": "-0.1202", "基金编号": "100056", "基金名称": "富国低碳环保", "估算涨幅": "2.54", "估值时间": "2015-06-17", "估算净值": "3.4126", "净值日期": "2015-06-17", "单位净值": "3.3240", "记录时间": "23:22", "基金类型": "股票型"}
4+
{"日增长率": "-0.1202", "基金编号": "100056", "基金名称": "富国低碳环保", "估算涨幅": "2.54", "估值时间": "2015-06-17", "估算净值": "3.4126", "净值日期": "2015-06-17", "单位净值": "3.3240", "记录时间": "23:50", "基金类型": "股票型"}
5+
{"日增长率": "-0.1202", "基金编号": "100056", "基金名称": "富国低碳环保", "估算涨幅": "2.54", "估值时间": "2015-06-17", "估算净值": "3.4126", "净值日期": "2015-06-17", "单位净值": "3.3240", "记录时间": "00:01", "基金类型": "股票型"}
6+
{"日增长率": "-0.1202", "基金编号": "100056", "基金名称": "富国低碳环保", "估算涨幅": "2.54", "估值时间": "2015-06-17", "估算净值": "3.4126", "净值日期": "2015-06-17", "单位净值": "3.3240", "记录时间": "00:01", "基金类型": "股票型"}
7+
{"日增长率": "-0.1202", "基金编号": "100056", "基金名称": "富国低碳环保", "估算涨幅": "2.54", "估值时间": "2015-06-17", "估算净值": "3.4126", "净值日期": "2015-06-17", "单位净值": "3.3240", "记录时间": "00:01", "基金类型": "股票型"}
8+
{"日增长率": "-0.1202", "基金编号": "100056", "基金名称": "富国低碳环保", "估算涨幅": "2.54", "估值时间": "2015-06-17", "估算净值": "3.4126", "净值日期": "2015-06-17", "单位净值": "3.3240", "记录时间": "00:01", "基金类型": "股票型"}
9+
{"日增长率": "-0.1202", "基金编号": "100056", "基金名称": "富国低碳环保", "估算涨幅": "2.54", "估值时间": "2015-06-17", "估算净值": "3.4126", "净值日期": "2015-06-17", "单位净值": "3.3240", "记录时间": "00:02", "基金类型": "股票型"}
10+
{"日增长率": "-0.1202", "基金编号": "100056", "基金名称": "富国低碳环保", "估算涨幅": "2.54", "估值时间": "2015-06-17", "估算净值": "3.4126", "净值日期": "2015-06-17", "单位净值": "3.3240", "记录时间": "00:02", "基金类型": "股票型"}
11+
{"日增长率": "-0.1202", "基金编号": "100056", "基金名称": "富国低碳环保", "估算涨幅": "2.54", "估值时间": "2015-06-17", "估算净值": "3.4126", "净值日期": "2015-06-17", "单位净值": "3.3240", "记录时间": "00:02", "基金类型": "股票型"}
12+
{"日增长率": "-0.1202", "基金编号": "100056", "基金名称": "富国低碳环保", "估算涨幅": "2.54", "估值时间": "2015-06-17", "估算净值": "3.4126", "净值日期": "2015-06-17", "单位净值": "3.3240", "记录时间": "00:02", "基金类型": "股票型"}
13+
{"日增长率": "-0.1202", "基金编号": "100056", "基金名称": "富国低碳环保", "估算涨幅": "2.54", "估值时间": "2015-06-17", "估算净值": "3.4126", "净值日期": "2015-06-17", "单位净值": "3.3240", "记录时间": "00:02", "基金类型": "股票型"}
14+
{"日增长率": "-0.1202", "基金编号": "100056", "基金名称": "富国低碳环保", "估算涨幅": "2.54", "估值时间": "2015-06-17", "估算净值": "3.4126", "净值日期": "2015-06-17", "单位净值": "3.3240", "记录时间": "00:02", "基金类型": "股票型"}
15+
{"日增长率": "-0.1202", "基金编号": "100056", "基金名称": "富国低碳环保", "估算涨幅": "2.54", "估值时间": "2015-06-17", "估算净值": "3.4126", "净值日期": "2015-06-17", "单位净值": "3.3240", "记录时间": "00:08", "基金类型": "股票型"}
16+
{"日增长率": "-0.1202", "基金编号": "100056", "基金名称": "富国低碳环保", "估算涨幅": "2.54", "估值时间": "2015-06-17", "估算净值": "3.4126", "净值日期": "2015-06-17", "单位净值": "3.3240", "记录时间": "00:08", "基金类型": "股票型"}
17+
{"日增长率": "-0.1202", "基金编号": "100056", "基金名称": "富国低碳环保", "估算涨幅": "2.54", "估值时间": "2015-06-17", "估算净值": "3.4126", "净值日期": "2015-06-17", "单位净值": "3.3240", "记录时间": "00:09", "基金类型": "股票型"}
18+
{"日增长率": "-0.1202", "基金编号": "100056", "基金名称": "富国低碳环保", "估算涨幅": "2.54", "估值时间": "2015-06-17", "估算净值": "3.4126", "净值日期": "2015-06-17", "单位净值": "3.3240", "记录时间": "00:24", "基金类型": "股票型"}
19+
{"日增长率": "-0.1202", "基金编号": "100056", "基金名称": "富国低碳环保", "估算涨幅": "2.54", "估值时间": "2015-06-17", "估算净值": "3.4126", "净值日期": "2015-06-17", "单位净值": "3.3240", "记录时间": "00:24", "基金类型": "股票型"}
20+
{"日增长率": "-0.1202", "基金编号": "100056", "基金名称": "富国低碳环保", "估算涨幅": "2.54", "估值时间": "2015-06-17", "估算净值": "3.4126", "净值日期": "2015-06-17", "单位净值": "3.3240", "记录时间": "00:24", "基金类型": "股票型"}
21+
{"日增长率": "-0.1202", "基金编号": "100056", "基金名称": "富国低碳环保", "估算涨幅": "2.54", "估值时间": "2015-06-17", "估算净值": "3.4126", "净值日期": "2015-06-17", "单位净值": "3.3240", "记录时间": "00:25", "基金类型": "股票型"}
22+
{"日增长率": "-0.1202", "基金编号": "100056", "基金名称": "富国低碳环保", "估算涨幅": "2.54", "估值时间": "2015-06-17", "估算净值": "3.4126", "净值日期": "2015-06-17", "单位净值": "3.3240", "记录时间": "00:25", "基金类型": "股票型"}
23+
{"日增长率": "-0.1202", "基金编号": "100056", "基金名称": "富国低碳环保", "估算涨幅": "2.54", "估值时间": "2015-06-17", "估算净值": "3.4126", "净值日期": "2015-06-17", "单位净值": "3.3240", "记录时间": "00:25", "基金类型": "股票型"}
24+
{"日增长率": "-0.1202", "基金编号": "100056", "基金名称": "富国低碳环保", "估算涨幅": "2.54", "估值时间": "2015-06-17", "估算净值": "3.4126", "净值日期": "2015-06-17", "单位净值": "3.3240", "记录时间": "00:25", "基金类型": "股票型"}
25+
{"日增长率": "-0.1202", "基金编号": "100056", "基金名称": "富国低碳环保", "估算涨幅": "2.54", "估值时间": "2015-06-17", "估算净值": "3.4126", "净值日期": "2015-06-17", "单位净值": "3.3240", "记录时间": "00:25", "基金类型": "股票型"}
26+
{"日增长率": "-0.1202", "基金编号": "100056", "基金名称": "富国低碳环保", "估算涨幅": "2.54", "估值时间": "2015-06-17", "估算净值": "3.4126", "净值日期": "2015-06-17", "单位净值": "3.3240", "记录时间": "00:25", "基金类型": "股票型"}
27+
{"日增长率": "-0.1202", "基金编号": "100056", "基金名称": "富国低碳环保", "估算涨幅": "2.54", "估值时间": "2015-06-17", "估算净值": "3.4126", "净值日期": "2015-06-17", "单位净值": "3.3240", "记录时间": "00:32", "基金类型": "股票型"}
28+
{"日增长率": "-0.1202", "基金编号": "100056", "基金名称": "富国低碳环保", "估算涨幅": "2.54", "估值时间": "2015-06-17", "估算净值": "3.4126", "净值日期": "2015-06-17", "单位净值": "3.3240", "记录时间": "00:32", "基金类型": "股票型"}
29+
{"日增长率": "-0.1202", "基金编号": "100056", "基金名称": "富国低碳环保", "估算涨幅": "2.54", "估值时间": "2015-06-17", "估算净值": "3.4126", "净值日期": "2015-06-17", "单位净值": "3.3240", "记录时间": "00:32", "基金类型": "股票型"}
30+
{"日增长率": "-0.1202", "基金编号": "100056", "基金名称": "富国低碳环保", "估算涨幅": "2.54", "估值时间": "2015-06-17", "估算净值": "3.4126", "净值日期": "2015-06-17", "单位净值": "3.3240", "记录时间": "00:39", "基金类型": "股票型"}
31+
{"日增长率": "-0.1202", "基金编号": "100056", "基金名称": "富国低碳环保", "估算涨幅": "2.54", "估值时间": "2015-06-17", "估算净值": "3.4126", "净值日期": "2015-06-17", "单位净值": "3.3240", "记录时间": "00:39", "基金类型": "股票型"}
32+
{"日增长率": "-0.1202", "基金编号": "100056", "基金名称": "富国低碳环保", "估算涨幅": "2.54", "估值时间": "2015-06-17", "估算净值": "3.4126", "净值日期": "2015-06-17", "单位净值": "3.3240", "记录时间": "00:39", "基金类型": "股票型"}
33+
{"日增长率": "-0.1202", "基金编号": "100056", "基金名称": "富国低碳环保", "估算涨幅": "2.54", "估值时间": "2015-06-17", "估算净值": "3.4126", "净值日期": "2015-06-17", "单位净值": "3.3240", "记录时间": "00:39", "基金类型": "股票型"}

0 commit comments

Comments
 (0)