天天基金網可以很方便的查詢某基金的歷史淨值:
如何將這些歷史資料下載到本地,進行進一步的分析呢?
API的消費,可以使用nodejs的request工具庫,程式碼如下:
var config = require("../config.js");var request = require('request');var log = require("./log.js");function sendRequest(sRequestUrl) { var oRequestOption = { url: sRequestUrl, method: "GET" }; return new Promise(function(resolve,reject){ var requestC = request.defaults({jar: false}); log("sRequestUrl: " + sRequestUrl ); requestC(oRequestOption,function(error,response,body){ if(error){ log("Error occurred when accessing url: " + sRequestUrl); reject(error); } log("response: " + body); resolve(body); }); });}module.exports = sendRequest;
我想把某基金從建立至今的歷史淨值全部下載,但是這個網站只提供了分頁查詢資料的API:
所以我編寫了另一個函式:getRawDataWithHTMLFormatPerPage,輸入引數是頁的索引:
呼叫sendRequest將資料取回來之後,透過then交由parsePerDayDataFromHTMLResponse進行去噪處理:
該函式將歷史日期,當天的基金單位淨值,累計淨值和漲跌幅從API結果中提取出來,插入一個數組中,最後返回該陣列。
最後,在一個for迴圈裡,請求每頁的歷史資料,將結果分別寫入一個個text檔案裡:
text檔案裡的基金資料如下圖所示:
下一步,我會將這些text檔案合併成另一個單獨的text檔案,並對歷史資料做進一步的分析。
最新評論