這段時間在忙着寫一個web端3D可視化編輯的項目(其實也只是有空閑並且心血來潮的時候才會去寫的)和其他個人愛好相關的事情;
so,看一下目前項目進度的相關截圖:
其實就是將echarts的配置圖形化,目前暫且寫了4個組件。
然后,上個禮拜發現余額寶的收益已經跌破2%了,於是抱着玩玩的心態連夜找了一只基金(買得少),兩天下來,居然漲了100來塊錢,感覺就像是撿到💰了。
於是趁着周末的時間,用puppeteer+electron寫了個分析軟件。
1.基金公司列表
2.基金公司的基金列表
3.指定基金歷年收益情況
4.自助選股
其中,自助選股可以根據指定的上漲率參數(這個數據是我個人對基金歷史走勢計算出來的測評數據值),來對指定基金源(這里選取了150+基金公司中評級在5星的公司的所有基金,4021只基金)進行篩選;
我篩選了一次,上漲率指定為0.7的話,4021只基金里面大概能篩選出200只基金;
然后點擊篩選出來的基金,可以進一步看到該基金的歷史收益趨勢圖,進行進一步的人為主觀篩選。
當然了,4021只基金數據由於是實時線上爬取的,所以在單線程的情況下大概要1個小時,開了4個線程跑的時候電腦溫度直逼90℃,1分鍾能跑將近200個基金,但是到后面就慢了下來,應該是網站那邊做了限制?沒深究,然后又換回單線程去跑了。
技術細節:
1.在拿指定基金歷年收益情況數據的時候,發現網站采用的是jsonp,直接調用會有限制,於是在puppeteer里做了模擬點擊,並且對請求做了攔截處理,從而獲取指定請求的響應內容,然后就是對jsonp請求響應內容轉json的處理。
2.數據存儲方面,node腳本用的是fs模塊,h5頁面用的是Blob對象和file-saver庫,將抓取的數據轉json存儲本地。
3.利用node的child_process模塊相關函數(execFile、exec)執行js腳本。
4.electron的ipcMain和ipcRenderer之間的數據通信,主要用於將主進程中node執行的爬蟲腳本結果發送給渲染進程(h5頁面)用於數據展示。