Python獲取NBA歷史巨星和現役所有球員生涯數據曲線

1.序

之前用 Python 寫過一個自動生成球員職業生涯數據的程序,沒想到反響很好,本人也感到很欣慰。很多人問我怎麼做的,如何學 python 的,也有提建議說集成到 web 裡面的。

其實最開始我也是考慮到集成到 web 裡面,但是由於時間關係,只是簡單的做了一下,沒想到引起了大家的關注和建議。所以這次就做了升級,集成到 web 中!先看效果吧:

Python獲取NBA歷史巨星和現役所有球員生涯數據曲線

喬丹

Python獲取NBA歷史巨星和現役所有球員生涯數據曲線

科比

2.環境配置

語言:Python3

web框架:Flask

數據可視化:Pyecharts

項目主目錄有個 requirements.txt 文件,裡面是項目所需要的依賴包,你只需在終端輸入以下命令

pip install -r requirements.txt

依賴包就會自動安裝

Python獲取NBA歷史巨星和現役所有球員生涯數據曲線

3.功能升級

現升級完之後加入了以下功能:

3.1 將爬蟲集成到web中,通過在瀏覽器輸入球隊名稱獲取球隊下所有球員

Python獲取NBA歷史巨星和現役所有球員生涯數據曲線

猛龍

Python獲取NBA歷史巨星和現役所有球員生涯數據曲線

勇士

3.2 支持現役所有球員生涯數據曲線,同時包括常規賽和季後賽數據

Python獲取NBA歷史巨星和現役所有球員生涯數據曲線

倫納德

當 game=0 的時候,獲取常規賽數據,game=1 獲取季後賽數據

不得不吐糟一下公眾號只支持上傳 2M 以下的 gifgif 大了又不支持,gif 小了又不清晰…

所以很多時候錄完視頻後裁剪成 gif 要花費十幾二十分鐘的時間,很痛苦…哪位朋友有好方法,還請聯繫我!

3.3 同時支持退役球星數據,比如籃球界第一老流氓 喬丹

Python獲取NBA歷史巨星和現役所有球員生涯數據曲線

喬丹常規賽

Python獲取NBA歷史巨星和現役所有球員生涯數據曲線

喬丹季後賽

老流氓就是老流氓,季後賽場均得分沒有低於 29 以下的!85-86賽季達到了恐怖的 43.7 分!

3.4 支持更改背景顏色,同時支持圖片下載

比如 魔術師約翰遜 的數據,在請求的時候加入 color 參數

http://127.0.0.1:5800/retire/player?retire=魔術師&game=1&color=yellow

Python獲取NBA歷史巨星和現役所有球員生涯數據曲線

魔術師

根據你傳的 color 設置背景色,同時左上角有個下載按鈕,點擊可下載。是不是很強大!

4.代碼講解

4.1 Flask部分

請求地址:共有三個請求地址,代碼所在 urls.py,可以根據個人喜好修改地址

Python獲取NBA歷史巨星和現役所有球員生涯數據曲線

urls

其中根據球隊獲取球員地址為

/nba/team/, 現役球員生涯數據為 /nba/player/, 退役球星數據為 /retire/player/

請求參數:代碼所在 forms.py

Python獲取NBA歷史巨星和現役所有球員生涯數據曲線

參數

具體該傳什麼參數,代碼在上面。其中 color

是可選的!

運行項目:項目主目錄下有個 run.py 文件,直接運行即可!

4.2 爬蟲部分

之前程序是抓的虎撲上面的數據,虎撲網有個 bug :每個球員都多了一條 2017 年彙總的數據(不清楚是幹什麼的),現代碼已修正。而且虎撲不支持歷史球員數據查詢,所以現在加入了一個新網站,代碼部分如下:

Python獲取NBA歷史巨星和現役所有球員生涯數據曲線

主要涉及到 html 提取技術,之前文章都有介紹,不詳說了。

4.3 數據可視化部分

此部分主要是將 pyecharts 集成到 flask 中,集成的文件在 templates 中有些是默認文件,新增的部分是發送 ajax 請求,生成球員曲線。

沒有什麼太多要說的,因為我之前的文章都有介紹過 pyecharts 的用法


分享到:


相關文章: