創作內容

31 GP

自動生成蓋樓分析圖表器

作者:熾炎之翼│2021-02-05 01:45:27│巴幣:62│人氣:667
度度度
最近一樣在玩Python爬蟲
然後最新的作品就是自動蓋文分析

用起來是像這樣
會自動計算每日的蓋樓數量

(以愛美大樓為例)

目前設定是顯示過去七天的數據
當然要調成一個月甚至一年也是沒問題

(愛美大樓一個月的數據)

不過當然電腦也要跑更久就是了

原理跟之前一樣
是使用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這個好玩的函式庫
也算是我第一次真正踏進數據科學
真的也是讓人很興奮

不過當然這不是一個完美的作品
目前圖表還是非常簡陋
樓層問題也依舊是一個隱憂(雖然我覺得這是巴哈自己的問題)
之後還會繼續優化
然後程式碼之後有機會再貼吧
私心上其實不是很想公開就是了
畢竟是自己花心血自己研究做出來的
分享出來了感覺就好像被奪走了一樣

差不多就這樣
該來構思下一個作品了 嘿嘿




引用網址:https://home.gamer.com.tw/TrackBack.php?sn=5062107
All rights reserved. 版權所有,保留一切權利

相關創作

留言共 19 篇留言

舒潔艾拉
:我就白嫖

02-05 01:49

熾炎之翼
這種真的會反感02-05 01:54
夜雨繁塵
縮圖是兩隻貪食蛇嗎

02-05 01:50

熾炎之翼
02-05 01:54
臭宅男
分享程式碼可以嗎

02-05 02:00

熾炎之翼
小圈圈可以 其他否02-05 02:05
FRENIA
我看不懂

02-05 02:16

熾炎之翼
看的懂圖表就好了02-05 02:17
你在搞什麼
天 願意教我爬蟲嗎我好像會學到

02-05 02:21

熾炎之翼
網路上很多教學 大數據上很實用的東東02-05 02:23
鴕鳥不會飛
猛...

02-05 02:45

熾炎之翼
你比較02-05 11:12
班尼.史克斯
看起來還不錯,有考慮放到GitHub嗎?

02-05 03:02

熾炎之翼
有 之後會放02-05 11:12
阿霞
佬欸

02-05 04:24

熾炎之翼
普通普通02-05 11:12
kasumi_ MyGo單推人
佬爆

02-05 05:56

熾炎之翼
還好還好02-05 11:13
無鹽粄條
太猛了

02-05 09:30

熾炎之翼
你比較厲害吧...02-05 11:13
BUG
佬...

02-05 09:33

熾炎之翼
還好啦 技術上沒有難到誇張02-05 11:15
燃燄-ないない
python佬==

02-05 09:37

熾炎之翼
不敢不敢02-05 11:15
希無冀

02-05 09:45

熾炎之翼
請拉麵了ㄅ02-05 11:17
煙雨迷濛
才華洋溢

02-05 09:55

熾炎之翼
沒有沒有02-05 11:19
美國紐澤希州
看不懂 總之佬

02-05 10:28

熾炎之翼
尚可尚可02-05 11:22
幻雨
都會寫程式 帶窩啦

02-05 12:18

熾炎之翼
銳 不要嘲諷了好ㄇ...02-05 12:45
望塵莫及
先推!不然別人以為我看不懂ˊ△ˋ(真的不懂)

02-05 12:42

熾炎之翼
沒事 看懂圖表就夠了02-05 12:46
我的巴哈超爛
我看不懂,但是我知道這很佬

02-05 13:17

熾炎之翼
還好啦02-06 00:02
怕爆
佬,我之前有想過類似的概念,但不知道要怎麼做

02-05 23:54

熾炎之翼
這真的要思考一下02-06 00:03
我要留言提醒:您尚未登入,請先登入再留言

31喜歡★H32902227 可決定是否刪除您的留言,請勿發表違反站規文字。

前一篇:2021/02/04 新... 後一篇:2021/02/05 玩...

追蹤私訊切換新版閱覽

作品資料夾

a86189642祝福
祝大家幸福(o'v'b)b看更多我要大聲說昨天04:02


face基於日前微軟官方表示 Internet Explorer 不再支援新的網路標準,可能無法使用新的應用程式來呈現網站內容,在瀏覽器支援度及網站安全性的雙重考量下,為了讓巴友們有更好的使用體驗,巴哈姆特即將於 2019年9月2日 停止支援 Internet Explorer 瀏覽器的頁面呈現和功能。
屆時建議您使用下述瀏覽器來瀏覽巴哈姆特:
。Google Chrome(推薦)
。Mozilla Firefox
。Microsoft Edge(Windows10以上的作業系統版本才可使用)

face我們了解您不想看到廣告的心情⋯ 若您願意支持巴哈姆特永續經營,請將 gamer.com.tw 加入廣告阻擋工具的白名單中,謝謝 !【教學】