tushare 源码分析 之 fundamental.py
原文链接:http://www.30daydo.com/article/74
python的tushare用来做数据分析是一个不错的工具。
下面来具体看看里面的一些具体的函数是怎么实现的。
fundamental.py 这个文件是获取企业的基本面信息的。
比如 在主程序 main中, 那么我们来看看get_stock_basics函数的实现。
上面通过urlib2的Request函数获取url的信息,然后保存为df格式然后返回。
url路径在这个变量里面:
ct.ALL_STOCK_BASICS_FILE
跳转到这个变量
ALL_STOCK_BASICS_FILE = '%s%s/static/all.csv'%(P_TYPE['http'], DOMAINS['oss'])
P_TYPE 和DOMAINS 是字典变量, 在同一个文件内可以找到他们的值:
然后把上面的字典值抽取出来:
那么url就是 http://218.244.146.57/static/all.csv , 你可以试试在浏览器里直接输入。 看到了吗?
可以直接下载一个all.csv格式的文件,打开后可以看到里面很多企业基本面的信息。
获取业绩报表
def get_report_data(year, quarter):
"""
获取业绩报表数据
Parameters
--------
year:int 年度 e.g:2014
quarter:int 季度 :1、2、3、4,只能输入这4个季度
说明:由于是从网站获取的数据,需要一页页抓取,速度取决于您当前网络速度
Return
--------
DataFrame
code,代码
name,名称
eps,每股收益
eps_yoy,每股收益同比(%)
bvps,每股净资产
roe,净资产收益率(%)
epcf,每股现金流量(元)
net_profits,净利润(万元)
profits_yoy,净利润同比(%)
distrib,分配方案
report_date,发布日期
"""
函数主要通过 request = Request(url) 在财经网站获取信息。
Request里面的参数是一个可变量,通过循环的列表来获取所有的公司业绩报表。
通过定位参数里的变量,可以得到随意一个url, 比如 REPORT_URL = '%s%s/q/go.php/vFinanceAnalyze/kind/mainindex/%s?s_i=&s_a=&s_c=&reportdate=%s&quarter=%s&p=%s&num=%s'
那么url =http://vip.stock.finance.sina.com.cn/q/go.php/vFinanceAnalyze/kind/mainindex/index.phtml?s_i=&s_a=&s_c=&reportdate=2014&quarter=1&p=1&num=38
那么直接在浏览器输入看看 是什么数据
看到了2014年第一节度的每个公司的业绩(因为有些是新股,所以2014的数据显示不全)
注意
根据作者的意思,这个参数写4就是年报。 (可以自己根据网址内容去到新浪财经去验证)
待续。