目前設定是顯示過去七天的數據
當然要調成一個月甚至一年也是沒問題
(愛美大樓一個月的數據)
不過當然電腦也要跑更久就是了
原理跟之前一樣
是使用Python爬蟲去爬每一樓的發文時間
不過巴哈比較麻煩
在頁面上不會直接秀出絕對時間
會出現「3小時前」「昨天20:10」之類的相對時間
甚至編輯後還會直接換成編輯時間
所以以HTML來說是無法直接用get_text()來輕鬆得到發文時間
因此我這次就瞄準同標籤內的date-mtime屬性
這個屬性的內容是以例如「2020-08-23 00:00:00」格式來記錄發文的絕對時間
所以就直接get('date-mtime')即可得到時間
這邊秀一段以2021-02-04為目標去解析的內容
2021-02-04 20:45:09
2021-02-04 20:50:19
2021-02-04 20:53:17
2021-02-04 20:53:18
2021-02-04 21:03:22
2021-02-04 21:08:17
2021-02-04 21:41:45
2021-02-04 21:45:31
2021-02-04 21:53:25
2021-02-04 22:33:27
2021-02-04 22:43:40
2021-02-04 22:47:30
2021-02-04 22:59:44
2021-02-04 23:01:40
2021-02-04 23:02:31
2021-02-04 23:20:19
2021-02-05 00:19:11
2021-02-04 18:12:51
2021-02-04 18:16:57
2021-02-04 18:20:19
2021-02-04 18:21:17
2021-02-04 18:41:09
2021-02-04 18:52:08
2021-02-04 19:03:48
2021-02-04 19:10:47
2021-02-04 19:11:22
2021-02-04 19:20:10
2021-02-04 20:00:47
2021-02-04 20:00:54
2021-02-04 20:01:35
2021-02-04 20:04:14
2021-02-04 20:06:01
2021-02-04 20:11:23
2021-02-04 20:20:28
2021-02-04 20:26:37
2021-02-04 20:37:31
2021-02-04 20:42:41
2021-02-04 08:56:57
2021-02-04 10:22:20
2021-02-04 10:46:11
2021-02-04 10:47:22
2021-02-04 10:59:38
2021-02-04 11:10:47
2021-02-04 11:11:14
2021-02-04 11:17:20
2021-02-04 11:44:43
2021-02-04 12:13:19
2021-02-04 12:31:29
2021-02-04 12:58:36
2021-02-04 13:25:44
2021-02-04 14:00:21
2021-02-04 15:55:20
2021-02-04 15:58:22
2021-02-04 16:36:40
2021-02-04 16:52:12
2021-02-04 16:52:37
2021-02-04 16:52:44
2021-02-03 20:31:18
2021-02-03 20:39:18
2021-02-03 20:47:42
2021-02-03 20:53:25
2021-02-03 21:29:50
2021-02-03 21:51:44
2021-02-03 22:19:30
2021-02-03 23:16:16
2021-02-03 23:30:30
2021-02-03 23:39:26
2021-02-03 23:43:33
2021-02-04 00:04:58
2021-02-04 00:08:16
2021-02-04 01:07:50
2021-02-04 01:10:28
2021-02-04 05:15:18
2021-02-04 05:18:32
2021-02-04 07:58:17
2021-02-04 08:48:09
2021-02-04 08:56:12
65
一眼即可知道是發文的時間點
時間上並不連貫的原因是爬蟲是從上爬到下
每次換頁時就會從頁面頂端開始
而65則為過濾後統計的蓋樓數
不過值得一提的是
這次由於必須要讓爬蟲去自動換頁
也就是得到不同頁數的網址
意外發現以巴哈上爬出來的最新頁碼竟然會自動對半
比如200會變成100頁碼這種情況
如果打101或150諸如此類的則一樣會是200頁內容
而99則是會對應到正確的199頁碼
具體原因目前不明
或許是巴哈網頁上撰寫的BUG
以程式來說也只是爬出目前頁碼
再把頁碼不斷往下扣並不斷貼入網址連入
對運行上沒有問題
唯一的隱憂就是總頁碼一半以下的樓層要怎麼處理
這點我還是會再繼續研究
或許巴哈到時候會給爬蟲一個負頁碼也說不定
算是一個很有趣的發現
而我這次也使用了time還有datetime函式來獲得目標時間
這兩個函式可以讓電腦自己找出我打開程式的時間點
並自動往後扣日期 其實這真的很重要
如果一切手動來扣日期的話
必須考慮每個月的天數不均
還有年份變換以及閏年問題
非常非常複雜而且麻煩
接下來日期以及樓層都爬到了
即代表圖表所需要的數據皆已經到手
剩下就是利用Python的Matplotlib函式庫了
我是今天 也就是做出程式的最後一天才第一次摸
非常輕鬆即可上手
稍微研究了一下函式的功能就直接使用了
絕大多數的時間還是用來調整圖表
字型大小還有標準線等等以外的都要慢慢調
最後再利用savefig()函式來輸出圖檔
就這樣 每次打開程式給電腦時間去跑數據
就能自動生成圖檔
非常方便以及實用
等我維修好自動發文系統後
再互相結合 就能在大樓裡面定時發文
直接以數據化的方式進行分析了
技術層面差不多就到此為止
這次感想是真的很有成就感
這次花了很少時間就做出這樣的成品
同時也因此接觸了Matplotlib這個好玩的函式庫
也算是我第一次真正踏進數據科學
真的也是讓人很興奮
不過當然這不是一個完美的作品
目前圖表還是非常簡陋
樓層問題也依舊是一個隱憂(雖然我覺得這是巴哈自己的問題)
之後還會繼續優化
然後程式碼之後有機會再貼吧
私心上其實不是很想公開就是了
畢竟是自己花心血自己研究做出來的
分享出來了感覺就好像被奪走了一樣
差不多就這樣
該來構思下一個作品了 嘿嘿