Python爬取NBA球员生涯数据及简单可视化

由于全球疫情的原因

NBA宣布无限期推迟比赛

也被迫随之进入了长草期

image

紧接着

狂摸话筒戈贝尔

连坐队友米切尔

网络小帅杜兰特

绿军硬汉斯马特

等十名球员相继官宣感染

洛杉矶湖人两人感染

但未公布名单

社区论坛里便开始疯狂YY

不能看球的日子

就少了一种摸鱼的消遣

但是

虽然看不了比赛

不能少了对🏀的热情

作为一个老JRS

小编决定用python

拿虎扑上球星的数据开开刀

(重点内容分割线)


以虎扑网站上

勒布朗詹姆斯的数据页面为例

用requests+lxml解析

import requests
from lxml import etree
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
url='https://nba.hupu.com/players/lebronjames-650.html'
data=requests.get(url).text
s=etree.HTML(data)

访问如下网址:

'https://nba.hupu.com/players/lebronjames-650.html'

Ctrl+Shift+C进入开发页面

image

选中所需的数据内容

右键->Copy->Copy Xpath

获取“赛季”和“球队”字段的Xpath

//*[@id="in_box"]

/div/div[1]/table[2]/tbody/tr[1]/td[1]

//*[@id="in_box"]

/div/div[1]/table[2]/tbody/tr[1]/td[2]

仔细观察可以发现

tr[1]/td[1]和tr[1]/td[2]

是区分不同字段的关键

用循环匹配的方式就可以定位字段

再将数据逐一下载保存

但是效果却并不好

用TXT存储数据

数据杂乱没有分行

且每个字段数据都掺入了

奇怪的符号“ ''' ”

image

对代码进行进一步优化

将输出的字符串“掐头去尾”

并用.csv文件存储

d=[[]for j in range(20)]
for j in range(20):
  for i in range (19):
    a=s.xpath('//*[@id="in_box"]/div/div[1]/table[2]/tbody/tr['+str(j)+']/td['+str(i)+']/text()')
    b=str(a)
    c=b[2:-2]
    d[j].append(c)
​
data1 = pd.DataFrame(d)
data1.to_csv('output.csv')

效果一下子好了许多

image

用同样的方法进行爬取

对库里、杜兰特、字母哥、

哈登、伦纳德和詹姆斯

六位球员生涯常规赛和季后赛

数据进行了汇总

image

有了数据下一步就要进行分析工作了

先对球员数据进行预处理

1.将季后赛数据和常规赛数据合并
2.选取需要分析的数据,包括时间、命中率、篮板、助攻、失误、得分(均为场均数据)
3.对除了命中率外的各项数据进行归一化

接下来就用到了matplotlib包

我们需要用它来画雷达图和折线图

plt.rcParams['font.sans-serif'] = ['KaiTi']  # 显示中文
labels = np.array([u'时间', u'命中率', u'篮板',u'助攻',u'失误',u'得分']) # 标签
dataLenth = 6  # 数据维度
data_radar = np.array([james[0],james[1],james[2],james[3],james[4],james[5]]) # 数据
angles = np.linspace(0, 2*np.pi, dataLenth, endpoint=False)  # 分割圆周长
data_radar = np.concatenate((data_radar, [data_radar[0]]))  # 闭合
angles = np.concatenate((angles, [angles[0]]))  # 闭合
plt.polar(angles, data_radar, 'bo-', linewidth=1)  # 做极坐标系
plt.thetagrids(angles * 180/np.pi, labels)  # 做标签
plt.fill(angles, data_radar, facecolor='magenta', alpha=0.25)# 填充  c  maroon
plt.title(u'james生涯场均数据')
plt.show()
​

雷达图便于显示该球员

在六个维度的属性和能力

image

很明显,詹姆斯在六人的比较当中

四项数据名列前茅

由于扬尼斯的存在

篮板稍微逊色一些

同样将其他球员数据做成图片

库里:

image

杜兰特:

image

字母哥:

image

哈登:

image

伦纳德:

image

以上数据均为场均数据

接下来对总得分趋势进行分析

plt.title('詹杜卡库哈扬生涯得分')
plt.plot(x, curry, color='green', label='curry')
plt.plot(x, durant, color='red', label='durant')
plt.plot(x, giannis,  color='skyblue', label='giannis')
plt.plot(x, harden,  color='blue', label='harden')
plt.plot(x, kawhi,  color='yellow',label='kawhi')
plt.plot(x, james,  color='magenta',label='james')
plt.legend() # 显示图例
plt.xlabel('赛季')
plt.ylabel('得分')
plt.show()

将詹杜卡库哈扬生涯累计得分

绘制折线图进行分析

image

横轴表示03赛季至19赛季

纵轴表示球员生涯累计得分

老詹一骑绝尘呐,哈哈

对上图进行处理之后

image

可以看到

詹姆斯的得分能力仍旧具有统治力

三十岁之后数据有所下滑

但是哈登和杜兰特得分能力紧追不舍

作为老詹蜜

今年是湖人和老詹最有希望的一年

希望疫情赶快过去

还卧虎一个总冠军

image
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 211,817评论 6 492
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 90,329评论 3 385
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 157,354评论 0 348
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 56,498评论 1 284
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 65,600评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 49,829评论 1 290
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,979评论 3 408
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,722评论 0 266
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,189评论 1 303
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,519评论 2 327
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,654评论 1 340
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,329评论 4 330
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,940评论 3 313
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,762评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,993评论 1 266
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,382评论 2 360
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,543评论 2 349

推荐阅读更多精彩内容