解鎖成就:被 NTU Cool 停用帳號
起因:拖延症遇上死線
修資工課的時候一堆課都要上傳 zip 檔。但由於我每次都會拖到死線才上傳,zip 完再手動拉上去 Cool 繳交弄得很手忙腳亂。
期中後就開始想:不如寫一個類似 PyGithub 的 API wrapper,用 Python 自動進行 NTU Cool 的各種操作——上傳作業、下載檔案、爬私訊之類的。
技術方法
因為 NTU Cool 的網站大部分都是 SSR 的,用 Selenium 來做自動化有點用牛刀殺雞的感覺。所以我的做法是在 F12 看封包,反推出 API endpoint,然後單純發 HTTP request。
這個方法比 Selenium 快很多,也穩定很多。基本上就是模擬瀏覽器的行為,但省去了渲染和 JavaScript 執行的開銷。
失控的開始
寫了雛型之後,我就開始思考這東西到底可以拿來幹嘛。然後就有了一個很靠北的主意:
每分鐘換一次頭貼,上面顯示現在的時間。
這樣我的大頭貼就可以充當一個時鐘了!非常有趣。
於是從一個月前開始,我就掛了一個 script 讓它不斷更新我的頭貼。
東窗事發
原本想說一分鐘一筆流量應該還好吧……
結果我就被盯上了。直接被網管封鎖帳號。
還好我禮拜六把最後一個作業交完了。
封鎖通知的信還被 CC 給他們的組長黃從仁教授。我猜他們是懷疑我帳號被盜或者在做壞事。
教訓(?)
說是教訓,但其實我覺得這件事挺好笑的。不過如果真要從中學到什麼的話:
- Rate limiting 真的存在而且會被抓
- 一分鐘一次的 API call 在正常使用中其實算異常行為
- 在做自動化之前,先確認你的所有作業都交了
- SSR 網站的 API 通常可以從 F12 Network tab 直接觀察到——比起逆向工程,這更像是「正向工程」
Related Posts
GSoC 2025:從申請者角度看開源貢獻的內捲現象
調查 GSoC 的申請流程後發現,開源社群的人才競爭已經白熱化。AI 生成的 PR、搶 issue 的競速、以及「淨土」越來越少的焦慮。
Vibe Coding 祛魅記:AI Studio 兩小時的啟示
打開 AI Studio,兩小時做了十個小專案,Gemini Quota 直接用完。過程中對 vibe coding 的焦慮祛魅了,也看見了快速 demo 和深度工程的差距。
拜託閉嘴:LLM 空話批判
「Great question!」「That's a really insightful observation!」——LLM 的廢話已經成為一種新型態的資訊污染。