Sometimes you win, sometimes you lose, sometimes it rains.

實作 TPBL Fantasy 心得

故事都有個開始…

先說明一下標題

一切都在不言中一切都在不言中

這件事開始於兩個待業人士兼棒球迷的抬槓,從中文媒體的品質,聊到職涯發展的選擇,然後 Adam 突然決定要召集一個團隊,來自幹一個 Fantasy Baseball。其實在四月前後,線上也有兩種實踐的方法:第一個是城牆用 google doc 做的,第二個則是用問卷系統,這兩種做法都非常的有創意且實際,但工程師就要用工程師的方法

鍵盤戰士示意圖鍵盤戰士示意圖

於是很快開始我們的第一次會議,決定怎麼分工及最重要的遊戲規則,Blues 提供了超豐富的經驗,幫助我們在這天決定了這個產品的三大要素

  1. 以週為單位循環 (週一到週日)

  2. 沒有聯盟 (全部人一起比)

  3. 每個人選 3 投 8 野 (沒有選秀或預算限制)

至於分工,因為已經有 Randy 及 Adam 兩個前端了,所以我就去處理後端及爬蟲的部份,以下的血淚心得及建議也比較偏向這方面的


資料來源方面,當然一定要從中職官網著手,其實在第一次會議之前,我已經做好了一個雛形的爬蟲。首先我很驚訝的是

官網沒有 https 耶

連我這個個人 blog 都有了,用 Let's Encrypt (前陣子有寫個教學),可以很容易的建立安全的網站, 如果想花錢的話,買一個 dv 等級的 ssl certificate,大概台幣 300 元左右

Server-Side Rendering

而且完全沒有 ajax 相關的功能,這樣寫爬蟲超方便,只需要 fetch + Cheerio。順便一提,如果是 SPA 的話,我個人推薦 Puppeteer,它可以模擬實際瀏覽器的行為,拿來做 end-to-end 測試也很好用

Source 結構超髒

打開官網的 source 彷彿看到了上個世紀的網站 (還是本來就是?),連 doctype 都是 html 4,然後裡面的 static resource 有 elta 耶

節錄某一段,不能只有我看到節錄某一段,不能只有我看到

站內連結格式錯誤且太多多餘參數

正常來說的 query string 應該是 ? 開頭,每組參數間以 & 分隔,例如:

?type=001&id=2020001

而中職網站內的連結則是

?&type=001&id=2020001

多了那個 &,結果 split 出的第一個參數變成空的,雖然不是很麻煩,但是很討厭

另外就是意義接近或相同的參數實在太多了,像賽程的網址是

/schedule/index/2020-05-13.html?&date=2020-05-13&gameno=01&sfieldsub=&sgameno=01

優良一點的設計應該是 /schedule/202005 ,如果要顯示二軍的話,可以用 schedule/202005/minor 就好

然後居然沒有以週為單位的 schedule !?

莫名其妙的 Boxscore

沒點 more 前呈現的資料,我覺得這樣其實 ok沒點 more 前呈現的資料,我覺得這樣其實 ok

點 more 會出現的 popup點 more 會出現的 popup按理來說 more 應該指的是更詳細的資料,而球員生涯成績應該會額外出現一些進階的數據,而在這裡的問題是,它把 IBB 及 BB 都合在一起了,讓我覺得有點意味不明,要嘛乾脆只出現基本數據就好,要嘛那個 more 就真的把數據詳實呈現,現在這樣有點不上不下。

再來就是英文簡寫的問題,我想了一下才知道 SAC 就是 SH (Sacrifice Hit: number of sacrifice bunts which allow runners to advance on the basepaths)。其實 Boxscore 不管在 MLB 官網或像 ESPN 都做的很好,中職官方其實也不需要太傷腦筋

ESPNESPN

MLB.comMLB.com

奇葩的遠古 Scorebox

裡面球員姓名的格式是類似像: 王 光 輝, 中間的空格到底是怎麼回事,要挪抬嗎? 還是這樣看起比較厲害

球員點將錄

要不是有這一頁,我都忘了曾經有第一金剛這隻球隊, 我代第一金剛球迷謝謝聯盟!

可憐的英文網站

這部份小人物 Hans 其實已經講很多,中文版網站的資訊架構已經不怎麼樣了,英文版更是爛到不忍卒睹。CPBL TV 雖然是比較新,但也沒有比較好,一點進去我看到標楷體就關了

算我求求你,先把標楷體拿掉,這個字體絕對不適合用在網頁上,既難閱讀也不美觀算我求求你,先把標楷體拿掉,這個字體絕對不適合用在網頁上,既難閱讀也不美觀

資訊架構跟網頁設計

我本來是想講這兩個部份的,不過還是放到付費區以後有空再寫,因為實在太多可以吐槽


結尾

2020 因為疫情影響,中職成為世界第一個開打的職棒,但很明顯中職網站在國際化的努力不夠,很多方面都看起來像上個世紀的遺跡,我個人對中職官方最不理解的就是

明明已經有個很好的範例放在那裡,你居然連照抄都會抄錯

像網站就是很好的例子,在研究這個網站時,處處都可以發現設計上不夠用心的地方,讓我感覺官方似乎沒有心思推廣到國際 (老實說,連中文內容都只能算是堪用)。台灣有很多的技術人才而且很便宜,絕對不可能說沒有資源去改善,民間組織的效率可以不只是這樣

最後,有興趣的朋友可以到這邊找我們

Play Ball!!

  • web scraper
  • fantasy