前往小程序,Get更优阅读体验!
立即前往
发布
社区首页 >专栏 >【大招预热】——95%财务人都不知的财报批量获取方式

【大招预热】——95%财务人都不知的财报批量获取方式

作者头像
btharp
发布2021-08-31 16:35:46
发布2021-08-31 16:35:46
1.4K00
代码可运行
举报
文章被收录于专栏:PowerBI x PythonPowerBI x Python
运行总次数:0
代码可运行

首先透露一下,最近憋着一个大招即将放送。本文主要教大家如何【获取】上市公司的财务数据。这里的【获取】,不是指在从该公司官网上下载pdf版不可编辑加工的财报,而是指快速地获得多家公司可编辑的财报等相关表格和数据。

—— —— —— —— —— —— —— —— —— —— —— —— —— —— —— ——

一、Power BI的Web爬虫

尽管各类财经网站(如新浪财经、网易财经、雪球等)上提供了更清晰的表格式三大报表,但很少开放下载功能,或部分需要付费开放。解决这个问题的一个方式是借助爬虫技术。Power BI自带的Web数据源功能,包含了简化的爬虫技术,直接在数据源中输入网址,就能获取上面的数据生成表格。相关说明常见于各大pbi公众号和书籍,这里推荐几篇,不再赘述:

  1. 马世权老师公众号的《如何用PowerBI自定义函数批量爬取财务报表
  2. 采总Power BI星球的《如何用PowerBI批量爬取网页数据
  3. 武俊敏老师的《抓取多个城市历史数据》(详见《Power BI商业数据分析项目实战》第二篇)

二、付费数据库插件或接口

上述门户网站的财经板块偏向于专门向投资人员直接提供信息,还有一些网站不止于此,它们为用户提供了更深入和详尽且可编辑可复用的数据,比如国泰安数据库CSMAR、东方财富网的Choice数据库、Wind、国外的Quandl等。这些网站偏研究型,往往有专门的软件、插件或接口,为付费用户提供便捷的数据下载方式。如东方财富网除了软件外,还提供excel插件,在excel上就能下载数据。不过这些网站的年费一般数以千计。

三、Tushare接口

根据笔者的经验,无论是用Power BI的Web数据源爬虫功能,还是专业付费网站直接下载,因为表格结构的不统一,以及数据的完整性,对于三大报表的都要进行不同程度的继续清洗。本文特别推荐tushare大数据开放社区(https://tushare.pro,点击文末阅读原文直达)的数据接口。Tushare包含股票、基金、期货、债券、外汇、行业大数据,同时包括了数字货币行情等区块链数据的全数据品类的金融大数据平台,为各类金融投资和研究人员提供适用的数据和工具。对比上述两种方式,tushare优点包括但不限于:

  1. 接口获得的是清洗过的DataFrame结构的数据,直接对应Power BI里的表格,从数据结构和完整度上无需进一步清洗,按需逆透视即可使用;
  2. 近乎免费的使用成本,平台采取积分制,按积分获得相应数据下载权限。即便直接付费购买积分,年费也只是100元上下,不足上述专业机构年费的1/10;
  3. 提供http、python、Matlab和R的SDK方式获取数据,基本涵盖常用的数据分析软件。

下面提供一段获取利润表的Python代码。如需直接在Power BI里生成表格,我们可以结合前文《Power BI X Python 关联分析(下)》说明在Power Query里进行操作。

  • 调取单家公司(600330.SH)利润表:
代码语言:javascript
代码运行次数:0
复制
# 设置token
ts.set_token('填你的token')
# 初始化接口
pro = ts.pro_api()

# 起止时间
start_date="20150101"
end_date="20200630"
# fields为需要获得的字段,即利润表的科目。注意:最后加上update_flag。取得的数据中,update_flag为1的是更新过的数据。
fields="total_revenue,revenue,int_income,prem_earned,comm_income,n_commis_income,prem_income,out_prem,une_prem_reser,reins_income,n_sec_tb_income,n_sec_uw_income,n_asset_mg_income,oth_b_income,fv_value_chg_gain,invest_income,ass_invest_income,forex_gain,total_cogs,oper_cost,int_exp,comm_exp,biz_tax_surchg,sell_exp,admin_exp,fin_exp,assets_impair_loss,prem_refund,compens_payout,reser_insur_liab,div_payt,reins_exp,oper_exp,compens_payout_refu,insur_reser_refu,reins_cost_refund,other_bus_cost,operate_profit,non_oper_income,non_oper_exp,nca_disploss,total_profit,income_tax,n_income,n_income_attr_p,minority_gain,oth_compr_income,t_compr_income,compr_inc_attr_p,compr_inc_attr_m_s,ebit,ebitda,insurance_exp,undist_profit,distable_profit,basic_eps,diluted_eps,ts_code,ann_date,f_ann_date,end_date,update_flag"

# 调取数据
ic=pro.income(ts_code='600330.SH',start_date=start_date,end_date=end_date,fields=fields)
  • 调取多家公司利润表:
代码语言:javascript
代码运行次数:0
复制
# 设置token
ts.set_token('填你的token')
# 初始化接口
pro = ts.pro_api()

# 多家公司的代码列表
StockList=["600300.SH","300600.SH","200200.SZ","000500.SZ"]

# 起止时间
start_date="20150101"
end_date="20200630"

# 循环调取
income=pro.income(ts_code="000000")
# fields为需要获得的字段,即利润表的科目。注意:最后加上update_flag。取得的数据中,update_flag为1的是更新过的数据。
fields="total_revenue,revenue,int_income,prem_earned,comm_income,n_commis_income,prem_income,out_prem,une_prem_reser,reins_income,n_sec_tb_income,n_sec_uw_income,n_asset_mg_income,oth_b_income,fv_value_chg_gain,invest_income,ass_invest_income,forex_gain,total_cogs,oper_cost,int_exp,comm_exp,biz_tax_surchg,sell_exp,admin_exp,fin_exp,assets_impair_loss,prem_refund,compens_payout,reser_insur_liab,div_payt,reins_exp,oper_exp,compens_payout_refu,insur_reser_refu,reins_cost_refund,other_bus_cost,operate_profit,non_oper_income,non_oper_exp,nca_disploss,total_profit,income_tax,n_income,n_income_attr_p,minority_gain,oth_compr_income,t_compr_income,compr_inc_attr_p,compr_inc_attr_m_s,ebit,ebitda,insurance_exp,undist_profit,distable_profit,basic_eps,diluted_eps,ts_code,ann_date,f_ann_date,end_date,update_flag"
for i in range(len(StockList)):
    ic=pro.income(ts_code=StockList[i],start_date=start_date,end_date=end_date,fields=fields)
    income=income.append(ic)
本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2020-11-05,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 PowerBI x Python 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档