2022年10月2日 星期日

[個人網站開發] 新增持股相關企業-近期業績公布日資料

最近又到美股財報季了, 由於現在個人持股已經到22檔, 管理上越來越困難, 尤其是財報季的時候, 通常在自己持股的公司公布財報前, 我也會想知道相關產業的公司業績如何, 提前知道相關產業的營運績效, 心裡對自己持股的公司的產業情況也比較有個底, 提前當作參考做個心理準備也好~。

要做這個也很簡單, 寫個爬蟲抓YAHOO財經的資料, 先抓自己持股頁面的類似公司有那些, 然後再跳到那頁面抓取業績公布日就好, 之後就把資料丟到個人網站上, 整理後結果大概就像這樣:


個人網站頁面: https://project.zmcx16.moe/?page=investment-stocks
Github: https://github.com/zmcx16/zmcx16.github.io

上面的Similar就是我的持股標的, Date跟Symbol則是Yahoo分類的該公司的類似企業的股票代號以及業績公布日, 而Similar顯示"-"的則代表那標的就是我持股的業績公布日, 點擊後就會跳到Yahoo財經對應的頁面, 簡單寫個小爬蟲以後就能輕鬆許多XD 


最後稍微分享下這次的小爬蟲程式, 程式碼如下:
https://github.com/zmcx16/zmcx16.github.io/blob/master/.github/script/build_similar-earning-data.py


程式是直接打https request到Yahoo財經個股首頁抓網頁內容, 不使用yfinance是因為雖然yfinance可以查詢業績公布日, 卻沒辦法取得個股相近的股票代號, 所以沒辦法只好打https request取得整個網頁檔再自己寫parser。

運氣好的是, Yahoo財經擋爬蟲做得很陽春, 只要request header有帶user-agents就不會特別阻擋(沒帶的話會回404 error, 做這麼簡單的方式真棒XD)。 然後可能Yahoo財經是老網站了, 前後端分離做得很陽春, 個股首頁的資料沒有獨立成API(其他頁面有), 可是也不是純SSR (Server-Side-Rendering), html網頁碼長得像這樣:


所有資料直接以dict的形式塞到root.App.main變數裡, 我連寫regular expression都不用, 直接抓這一行再把頭尾去掉再當json載入就好, 個股首頁所有用到的資料都放在這裡, parser可以寫這麼輕鬆真的是太棒了XD

這次分享差不多就到這邊, 美股最近依然持續大跌, 希望能稍微跌慢點, 這樣我才有加碼的機會啊~~~。

沒有留言:

張貼留言