[grabit] 功能清單

使用了一陣子,也修了不少bug,大概就先這樣子用看看,比較喜歡這樣一頁式地顯示全部資訊。 ( 其他資訊查詢APP的設計傾向單一屬性資料單一頁面,雖然顯示單一資料比較美觀,但是點來點去真的會忘記剛剛看了什麼, 這也是我想DIY的驅動之一 ) grabit changelog v0.8.0 個股趨勢圖(同頁面顯示) 下列圖示以電子級溶劑勝ㄧ(1773)為例,所有的趨勢圖是在同一個頁面顯示不需另開分頁, 這樣有個好處是不用點選跳轉到其他頁面後,就忘了之前看的感覺。 技術線圖: 單月營益率、月營收成長率、長短期營收年增率、長短期營收平均值: EPS(元)、ROE/ROA、利潤比率 - 季報、年報 : 流速動比率-季報、年報 : 全部個股篩選比較 可以用一些常用指標勾選來過濾個股,並顯示該個股的摘要財務與常用數據。 自訂分類標籤 自訂標籤顯示出來的表格結果跟篩選比較的表格是一樣的,差異只在是自定義標籤分類。

爬蟲控制頁與排程

cron tasks 有些具有可預測大約日期範圍的抓取,設為排程工作,避免沒事就去爬蟲頁面檢查點擊。 // 每天15:10(日線) cronTasks.AddFunc("30,50 15 * * *", func() { cronhome.MADaily(app) }) cronTasks.AddFunc("30,50 18 * * Fri,Sun", func() { cronhome.MAWeekly(app) }) cronTasks.AddFunc("30,40 13 * * Sat", func() { cronhome.MAMonthly(app) }) // 月營收: 每個月 1~18 日, every day between 1st and 15th lastMonth := now.AddDate(0, -1, 0) cronTasks.AddFunc("30 5,7,8,15,16,17,21,22,23 1-18 * ?", func() { cronhome.Revenue(app, lastMonth) }) // 今年公佈的股利 cronTasks.AddFunc("10 8,15,18,21 * * *", func() { cronhome....

爬蟲 - 開不開 Goroutines ?

因為想要練習寫 golang,在找不到題目的狀態下,剛好買了台 Mac-Mini M1 無法開卷商的 APP,想來想去乾脆直接就來寫一個自己使用. 目標 抓取個股月營收 解析網頁 寫入資料庫 比較數據 (開不開 Goroutines) 月營收爬蟲 Single Thread 17xx 間公司的月營收約 1 年份的數據筆數是 20,828 筆,抓取到寫入資料庫約 7.55 秒,不會掛點(被對方拒絕) 開 Goroutines 7倍效能,一定要開的啊 ! 數據筆數: 20,828 筆(1年份) 抓取到寫入資料庫約 1.1 秒完成 (Multi Thread) 把筆數拉大到 113,694 筆,約 48.58s (Single Thread) 開了 Goroutines 約 2.8s ~ 4.8s (Multi Threads) 開了 Goroutines 以後,週一到五比較沒問題,常會被遠方中斷,直到改成批次爬, 每一梯次只開 80 ~ 100 的 threads 完成之後再換下一個梯次, 這樣改法變得穩定多了,只剩下週六日會動不動就被擋下來, 要有完整被檔後再繼續爬不被拒絕的寫法這一點以後有空要研究一下。

開發 GrabIt 動機

因為想要練習寫 golang,在找不到題目的狀態下,剛好買了台 Mac-Mini M1 無法開卷商的 APP,想來想去乾脆直接就來寫一個自己使用. 目標 可根據財報/營收/均線/產業篩選條件篩選出想要的個股 可定義標籤做分類 可看個股過去表現 開發環境 Angular v12+ Tailwind CSS v2.2.4+ golang v1.16.6+ postgreSQL v13+