tushare获取财报数据并存入mysql

 tushare数据接口除了常规的股票数据如日线、指数等相关信息,也提供了股票的财务信息。tushare中的fina_indicator接口包含了各种财务相关信息,可以方便读取公司财务指标。tushare账号ID:455337。

首先链接tushare,在tushare官网注册后可以找到自己token。

import tushare as ts
TOKEN = '****** '
pro = ts.pro_api(token=TOKEN)

fina_indicator接口中包含了160多种财务指标,将表格复制到excel里,可以输出参数描述方便地筛选出个人所需要的指标,部分指标如下图所示:

以600007.SH为例,我选择了需要的财务数据指标,代码太长\换行隔开,输出结果如下:

data=pro.fina_indicator(ts_code='600007.SH',start_date='2016',\
fields='ts_code,end_date,eps,ocfps,profit_to_gr,roe,roa,\
debt_to_assets,current_ratio,quick_ratio,\
inv_turn,ar_turn,ca_turn,fa_turn,assets_turn,\
assets_yoy,or_yoy,equity_yoy')

为了获取所有股票的财务数据,接下来准备股票列表,即筛选出符合要求的股票代码,对其进行财务数据的获取。这里使用的是stock_basic接口,其中exchange为交易所类别,我只想要上交所和深交所,所以没有选择北交所;list_status为上市状态,默认为L正常上市。分别获得股票代码和名称后,将两个表连接在一起。

stock_list1 = pro.query('stock_basic',exchange='SSE', list_status='L', fields='ts_code,name,industry,market,list_date')
stock_list2 = pro.query('stock_basic',exchange='SZSE', list_status='L', fields='ts_code,name,industry,market,list_date')
stock_list=pd.concat([stock_list1,stock_list2],axis=0,ignore_index=True)
stock_list

首先pip install mysql,已安装的直接建立数据库连接,连接中用自己的信息替换中文,使用本机数据库地址一般为@127.0.0.1:3306

from sqlalchemy import create_engine 
import pymysql
pymysql.install_as_MySQLdb()
mysql_conn = create_engine('mysql://用户名:密码@数据库地址/数据库名称?charset=utf8&use_unicode=1')

循环获取财务信息时,由于接口访问次数受限,所以一次访问行不通,这里循环82次就不行了,获取数据量大时,手动循环不太现实,所以采用定时循环的方法,首先import time为后续工作做准备。

 由于每分钟访问接口受限制,所以在循环中设置time.sleep,即每次循环后间隔60s,获取三千多支股票的数据需要一个多小时。先去干别的,表就建好了。

a=0
b=70
while b<=3710:
    for i in range(a,b):
        data = pro.fina_indicator(ts_code=stock_list['ts_code'].iloc[i],start_date='2019',fields='ts_code,end_date,eps,ocfps,profit_to_gr,roe,roa,\
                              debt_to_assets,current_ratio,quick_ratio,\
                              inv_turn,ar_turn,ca_turn,fa_turn,assets_turn,\
                              assets_yoy,or_yoy,equity_yoy')
        data.to_sql('finance_indicator', mysql_conn, if_exists='append')
    time.sleep(60)
    a=b
    b=b+70

to_sql还有其他字段可以选择,可以搜索一下。

  • 2
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值