EXCEL獲取天天基金網每日歷史凈值
天天基金網的數據既比較全,又十分容易爬取。
下面就交給大傢怎麼不用VBA,隻使用Excel自帶的Power Query獲取天天基金網的歷史凈值數據。
天天基金網的歷史凈值數據地址為:http://fund.eastmoney.com/f10/F10DataApi.aspx
修改上述地址的參數,即可獲取指定基金在指定日期段內的凈值數據,例如000001(華夏混合成長)在成立以來2001年12月18日到5月18日之間的基金凈值數據為
http://fund.eastmoney.com/f10/F10DataApi.aspx?type=lsjz&code=000001&sdate=2001-12-18&edate=2020-05-18&per=20&page=1
鏈接中的各參數含義簡單說明:各位讀者可以直接修改為自己需要的。
- code=000001:基金代碼000001;
- sdate=2001-12-18:數據開始日期等於2001-12-18
- edate=2020-05-18:數據結束日期等於2020-05-18
- per:每頁顯示的條數,最大為50,為瞭便於演示,我設置為20條;
- page:一頁顯示不完整,該參數直接指定顯示第幾頁。
以上地址提供瞭為000001(華夏混合成長)在成立以來2001年12月18日到2020年05月18日之間的基金凈值數據。復制到瀏覽器中,結果如下圖:
具體步驟如下:
Step-01:新建一個空白的工作表,單擊【數據】-【新建查詢】-【從其他源】-【自網站】,如下圖所示:
Step-02:在新彈出的對話框中輸入網址
Step-03:在新彈出的對話框中選擇“table0”查詢,然後單擊【轉換數據】,如下圖所示:
Step-04:出現第一頁的查詢結果
Step-05:單擊【視圖】-【高級編譯器】,觀察:
- 在最前面輸入“(page as number) as table =>”,(引號內的部分)然後單擊【確定】(構建自定義函數),如下圖所示:
- 把1替換為“" & Number.ToText(page) & "”(引號內的部分,含一層引號)
解釋:將URL中的現有頁面值替換為page參數。由於我們已經指出頁面是數值型,因此我們需要使用Number.ToText函數將值轉換為文本。更新後的代碼如下所示:
Step-06:在下面的參數框裡任意的數字就可以查詢到任意頁碼的內容,但是不能抓取多頁。如果要一次性抓取多個頁碼,請看下一個步驟。如下圖所示:
Step-07:新建一個新的空查詢,即右鍵單擊【新建查詢】-【其他源】-【空查詢】,然後在彈出的界面中,在編輯欄裡輸入公式:=,回車鍵後生成1至219的列表,最後單擊【到表】。如下圖所示:
Step-08:單擊【添加列】-【調用自定義函數】-【功能查詢】裡選擇上面步驟的Table0,最後單擊確定。如下圖所示:
Step-09:單擊擴展按鈕,擴展表。如下圖所示:
Step-10:得到抓取的相關數據,到此完成抓取,修改列名,關閉並上載。如下圖所示:
所有的凈值數據就到EXCEL中瞭。抓取結果如下圖:一共4380行,加載完成
歡迎關註我的知識星球:Excel量化投資