让代码更简单

当前位置:代码狗 > 资源教程 > 实用教程 > 正文

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打开自行筛选即可,代码筛选下次再讲。

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

赞(6) 打赏

评论 6

  1. #2

    大佬,不知道是不是我理解错你的程序了,我把你的代码修改了一下start date改成2021-04-19 end date改成2021-04-27之后运行后,输出的表格csv内容只有单数天的数据,04-19、04-21、04-27的这几天的数据偶数天的没有‘

    一只大包子6个月前 (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

      代码狗6个月前 (04-28)回复
  2. #1

    我用代码跑出来为什么是只有一行数据,就是只有一个sh000001的数据,大佬可以解答一下吗

    一只大包子6个月前 (04-26)回复
    • 我贴上的代码是我实测能获取所有数据的。

      代码狗6个月前 (04-27)回复
      • …,为啥我copy你的代码跑出来只有一行,不可能因为存储路径改一点就错了吧,其他东西都没改…

        一只大包子6个月前 (04-27)
      • 不好意思,测试的时候加了一句跳出,删除即可,代码已更新。

        代码狗6个月前 (04-27)
×

请作者吃根烤肠!

支付宝