从小编真实接触股票已经有10年之久了
最近大家也看到了曾任《环球时报》总编辑的胡锡进,也开始入市炒股,并且每天都会发博文,分享当天的炒股感受
于是小编就试着获取股票的数据来研究一下,经过查找与对比,小编决定用akshare这个库,因为该库一直有更新,并且文档是中文,而且比较详细,
akshare文档地址:https://www.akshare.xyz/
导入akshare库
1import akshare as ak
2import pandas as pd
1、股票的基本信息数据
1ak.stock_individual_info_em(symbol='000651')
2、实时数据,当日的成交数据
单次返回所有沪深京 A 股上市公司的实时行情数据
1ak.stock_zh_a_spot_em()
3、历史数据,历史的成交数据
1ak.stock_zh_a_hist(symbol='000651',
2 period='daily',
3 start_date='20230701',
4 end_date='20230725',
5 adjust='' #不复权
6 )
4、资金流向数据
限量: 单次获取指定市场和股票的近 100 个交易日的资金流数据
1ak.stock_individual_fund_flow(stock='000651', market='sz')
5、行情报价,买卖各5档
1ak.stock_bid_ask_em(symbol='000651')
下面展示每日获取特定股票数据,可以做成定时任务,在15:00闭市后获取
1'''
2===========================
3@Time : 2023/7/26 20:13
4@File : stock_day
5@Software: PyCharm
6@Platform: Win10
7@Author : DataShare
8===========================
9'''
10import akshare as ak
11import pandas as pd
12import datetime
13import sys
14
15def stock_to_excel(stock_code, stock_name):
16 if stock_code[0] == '6':
17 market = 'sh'
18 elif stock_code[0] == '0':
19 market = 'sz'
20
21 df1 = ak.stock_zh_a_spot_em()
22 df2 = df1[df1['代码'] == stock_code]
23
24 dt = str(datetime.date.today()) #当日
25 df3 = ak.stock_individual_fund_flow(stock=stock_code, market=market) #在15:00之后获取
26 df4 = df3[df3['日期'] == dt]
27
28 result = {
29 '日期': dt,
30 '股票代码': stock_code,
31 '股票名称': stock_name,
32 '前一日收盘价': df2['昨收'].to_list()[0],
33 '开盘': df2['今开'].to_list()[0],
34 '收盘': df2['最新价'].to_list()[0],
35 '最高': df2['最高'].to_list()[0],
36 '最低': df2['最低'].to_list()[0],
37 '成交量': df2['成交量'].to_list()[0],
38 '成交额': df2['成交额'].to_list()[0],
39 '振幅': df2['振幅'].to_list()[0],
40 '涨跌幅': df2['涨跌幅'].to_list()[0],
41 '涨跌额': df2['涨跌额'].to_list()[0],
42 '换手率': df2['换手率'].to_list()[0],
43 '量比': df2['量比'].to_list()[0],
44 '市盈率-动态': df2['市盈率-动态'].to_list()[0],
45 '市净率': df2['市净率'].to_list()[0],
46 '60日涨跌幅': df2['60日涨跌幅'].to_list()[0],
47 '主力净流入-净额': df4['主力净流入-净额'].to_list()[0],
48 '主力净流入-净占比': df4['主力净流入-净占比'].to_list()[0],
49 '超大单净流入-净额': df4['超大单净流入-净额'].to_list()[0],
50 '超大单净流入-净占比': df4['超大单净流入-净占比'].to_list()[0],
51 '大单净流入-净额': df4['大单净流入-净额'].to_list()[0],
52 '大单净流入-净占比': df4['大单净流入-净占比'].to_list()[0],
53 '中单净流入-净额': df4['中单净流入-净额'].to_list()[0],
54 '中单净流入-净占比': df4['中单净流入-净占比'].to_list()[0],
55 '小单净流入-净额': df4['小单净流入-净额'].to_list()[0],
56 '小单净流入-净占比': df4['小单净流入-净占比'].to_list()[0]
57 }
58
59 return result
60
61
62if __name__ == '__main__':
63 stocks_code = {'000651': '格力电器',
64 '002241': '歌尔股份',
65 '002739': '万达电影',
66 '600956': '新天绿能',
67 '600031': '三一重工',
68 '600703': '三安光电',
69 '002027': '分众传媒',
70 '600030': '中信证券',
71 '002939': '长城证券',
72 } #小编买过的股票
73
74 dt = str(datetime.date.today())
75 results=[]
76 for stock_code, stock_name in stocks_code.items():
77 print(f'{stock_name}:{stock_code}')
78 try:
79 results.append(stock_to_excel(stock_code, stock_name))
80 except Exception as e:
81 print('运行中出错',e)
82 sys.exit(-1)
83
84 pd.DataFrame.from_dict(results).to_excel(f'./data/{dt}.xlsx', index=False)
联系客服