因為想要練習寫 golang,在找不到題目的狀態下,剛好買了台 Mac-Mini M1 無法開卷商的 APP,想來想去乾脆直接就來寫一個自己使用.

目標

  1. 抓取個股月營收
  2. 解析網頁
  3. 寫入資料庫
  4. 比較數據 (開不開 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 完成之後再換下一個梯次, 這樣改法變得穩定多了,只剩下週六日會動不動就被擋下來, 要有完整被檔後再繼續爬不被拒絕的寫法這一點以後有空要研究一下。