原文鏈接: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就是年報。 (可以自己根據網址內容去到新浪財經去驗證)
待續。