首頁>技術>

天天基金網可以很方便的查詢某基金的歷史淨值:

如何將這些歷史資料下載到本地,進行進一步的分析呢?

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檔案,並對歷史資料做進一步的分析。

10
  • BSA-TRITC(10mg/ml) TRITC-BSA 牛血清白蛋白改性標記羅丹明
  • MYSQL查詢和插入資料的流程是怎樣的