1.序
之前用 Python 寫過一個自動生成球員職業生涯數據的程序,沒想到反響很好,本人也感到很欣慰。很多人問我怎麼做的,如何學 python 的,也有提建議說集成到 web 裡面的。
其實最開始我也是考慮到集成到 web 裡面,但是由於時間關係,只是簡單的做了一下,沒想到引起了大家的關注和建議。所以這次就做了升級,集成到 web 中!先看效果吧:
喬丹
科比
2.環境配置
語言:Python3
web框架:Flask
數據可視化:Pyecharts
項目主目錄有個 requirements.txt 文件,裡面是項目所需要的依賴包,你只需在終端輸入以下命令
pip install -r requirements.txt
依賴包就會自動安裝
3.功能升級
現升級完之後加入了以下功能:
3.1 將爬蟲集成到web中,通過在瀏覽器輸入球隊名稱獲取球隊下所有球員
猛龍
勇士
3.2 支持現役所有球員生涯數據曲線,同時包括常規賽和季後賽數據
倫納德
當 game=0 的時候,獲取常規賽數據,game=1 獲取季後賽數據
不得不吐糟一下公眾號只支持上傳 2M 以下的 gif,gif 大了又不支持,gif 小了又不清晰…
所以很多時候錄完視頻後裁剪成 gif 要花費十幾二十分鐘的時間,很痛苦…哪位朋友有好方法,還請聯繫我!
3.3 同時支持退役球星數據,比如籃球界第一老流氓 喬丹
喬丹常規賽
喬丹季後賽
老流氓就是老流氓,季後賽場均得分沒有低於 29 以下的!85-86賽季達到了恐怖的 43.7 分!
3.4 支持更改背景顏色,同時支持圖片下載
比如 魔術師約翰遜 的數據,在請求的時候加入 color 參數
http://127.0.0.1:5800/retire/player?retire=魔術師&game=1&color=yellow
魔術師
根據你傳的 color 設置背景色,同時左上角有個下載按鈕,點擊可下載。是不是很強大!
4.代碼講解
4.1 Flask部分
請求地址:共有三個請求地址,代碼所在 urls.py,可以根據個人喜好修改地址
urls
其中根據球隊獲取球員地址為
/nba/team/, 現役球員生涯數據為 /nba/player/, 退役球星數據為 /retire/player/請求參數:代碼所在 forms.py
參數
具體該傳什麼參數,代碼在上面。其中 color 是可選的!
運行項目:項目主目錄下有個 run.py 文件,直接運行即可!
4.2 爬蟲部分
之前程序是抓的虎撲上面的數據,虎撲網有個 bug :每個球員都多了一條 2017 年彙總的數據(不清楚是幹什麼的),現代碼已修正。而且虎撲不支持歷史球員數據查詢,所以現在加入了一個新網站,代碼部分如下:
主要涉及到 html 提取技術,之前文章都有介紹,不詳說了。
4.3 數據可視化部分
此部分主要是將 pyecharts 集成到 flask 中,集成的文件在 templates 中有些是默認文件,新增的部分是發送 ajax 請求,生成球員曲線。
沒有什麼太多要說的,因為我之前的文章都有介紹過 pyecharts 的用法
閱讀更多 一枚程序媛呀 的文章