让代码更简单

Python使用baostock获取所有股票数据

重要:本文最后更新于2021-04-27 18:38:43,某些文章具有时效性,若有错误或已失效,请在下方留言或联系代码狗

如何从4000+股票中筛选我们需要的股票呢?利用baostock提供的数据可以做到,今天一起来学习下baostock提供的金融数据接口,筛选几只厉害的股票躺赚。要筛选就得先拿到所有的股票数据。

Python使用baostock获取所有股票数据

Python使用baostock获取所有股票数据

baostock扩展安装

复制
pip install baostock -i https://pypi.tuna.tsinghua.edu.cn/simple/ --trusted-host pypi.tuna.tsinghua.edu.cn

pip安装即可,另外,baostock需要3.5以上python环境,没有的自行安装,可以参考我前面的教程:Centos7.X升级默认Python到3.X并安装pip3扩展管理

安装pandas

复制
pip install pandas

取所有股票数据源码

复制
import baostock as bs
import pandas as pd

class test:

    def __init__(self):
        self.data_list=[]
        self.rs=None

    def get(self,gpd):
        rs = bs.query_history_k_data_plus(gpd[0],"date,code,open,high,low,close,preclose,volume,amount,adjustflag,turn,tradestatus,pctChg,isST",start_date='2021-03-15', end_date='2021-03-16',frequency="d", adjustflag="3")
        while (rs.error_code == '0') & rs.next():
            self.data_list.append(rs.get_row_data())
            print(rs.get_row_data())
            self.rs=rs

if __name__ == "__main__":

    lg = bs.login()
    rs = bs.query_all_stock(day="2021-03-15")
    te=test()
    i=0
    while (rs.error_code == '0') & rs.next():
        i=i+1
        print(i)
        gpd=rs.get_row_data()
        te.get(gpd)
    result = pd.DataFrame(te.data_list, columns=te.rs.fields)
    result.to_csv("C:\\Users\\Administrator\\Desktop\\gp\\all.csv", index=False)
    bs.logout()

上面的代码获取了2021年3月15日的所有参与交易的股票数据,想要别的日期数据,可以自行修改日期。

数据保存为csv文件,使用Excel打开自行筛选即可,代码筛选下次再讲。

感觉很棒!可以赞赏支持我哟~

17 打赏

评论 (6)

登录后评论
大佬,不知道是不是我理解错你的程序了,我把你的代码修改了一下start date改成2021-04-19 end date改成2021-04-27之后运行后,输出的表格csv内容只有单数天的数据,04-19、04-21、04-27的这几天的数据偶数天的没有‘
参阅baostock官方文档函数说明:http://baostock.com/baostock/index.php/Python_API%E6%96%87%E6%A1%A3#.E8.8E.B7.E5.8F.96.E5.8E.86.E5.8F.B2A.E8.82.A1K.E7.BA.BF.E6.95.B0.E6.8D.AE.EF.BC.9Aquery_history_k_data_plus.28.29
我用代码跑出来为什么是只有一行数据,就是只有一个sh000001的数据,大佬可以解答一下吗
我贴上的代码是我实测能获取所有数据的。
…,为啥我copy你的代码跑出来只有一行,不可能因为存储路径改一点就错了吧,其他东西都没改…
不好意思,测试的时候加了一句跳出,删除即可,代码已更新。
QQ咨询 邮件咨询 狗哥推荐