python3使用baostock获取沪深300成分股历史数据

该代码示例展示了如何利用baostock模块,从2006年至2023年,每半年一次地抓取沪深300指数的历史成分股数据,并将结果保存为CSV文件。通过Python编程,实现了自动化数据获取和处理的过程。
摘要由CSDN通过智能技术生成

参考链接:

        baostock模块:www.baostock.com

         获取沪深300历史成分股:https://zhuanlan.zhihu.com/p/639250910

        (网上只有少部分成分股名单资源,且价格不低,所以自己动手)。

         代码拔取从start_year到end_year的沪深300历史成分股信息,以半年为单位,最后以file_name为路径和文件名保存。 

        代码:

import baostock as bs
import pandas as pd
# 登陆系统
lg = bs.login()
# 显示登陆返回信息
print('login respond error_code:'+lg.error_code)
print('login respond  error_msg:'+lg.error_msg)

start_year = 2006
end_year = 2023
file_name = "G:/hs300_stocks.csv"    #文件路径和文件名

keep_index = True
hs300_stocks = [] 
for i in range(start_year, end_year + 1):
    date1 = str(i)+'-01-31'    # 获取沪深300成分股, 上半年
    rs1 = bs.query_hs300_stocks(date1)
    #print('query_hs300 error_code:'+rs1.error_code)
    #print('query_hs300  error_msg:'+rs1.error_msg)
    
    while (rs1.error_code == '0') & rs1.next():    # 获取一条记录,将记录合并在一起      
        hs300_stocks.append(rs1.get_row_data())

    date2 = str(i)+'-07-31'    # 获取沪深300成分股, 下半年
    rs2 = bs.query_hs300_stocks(date2)
    #print('query_hs300 error_code:'+rs2.error_code)
    #print('query_hs300  error_msg:'+rs2.error_msg)
    
    while (rs2.error_code == '0') & rs2.next():    # 获取一条记录,将记录合并在一起      
        hs300_stocks.append(rs2.get_row_data())

result = pd.DataFrame(hs300_stocks, columns=rs1.fields)# 结果集输出到csv文件
result.to_csv(file_name, encoding="gbk", index=False)
#print(result)# 登出系统
bs.logout()

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值