由于全球疫情的原因

NBA宣布无限期推迟比赛

也被迫随之进入了长草期

紧接着

狂摸话筒戈贝尔

连坐队友米切尔

网络小帅杜兰特

绿军硬汉斯马特

等十名球员相继官宣感染

洛杉矶湖人两人感染

但未公布名单

社区论坛里便开始疯狂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)

访问如下网址:

Ctrl+Shift+C进入开发页面

选中所需的数据内容

右键->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存储数据

数据杂乱没有分行

且每个字段数据都掺入了

奇怪的符号“ ''' ”

对代码进行进一步优化

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

并用.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')

效果一下子好了许多

用同样的方法进行爬取

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

哈登、伦纳德和詹姆斯

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

数据进行了汇总

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

先对球员数据进行预处理

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()

雷达图便于显示该球员

在六个维度的属性和能力

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

四项数据名列前茅

由于扬尼斯的存在

篮板稍微逊色一些

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

库里:

杜兰特:

字母哥:

哈登:

伦纳德:

以上数据均为场均数据

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

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()

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

绘制折线图进行分析

横轴表示03赛季至19赛季

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

老詹一骑绝尘呐,哈哈

对上图进行处理之后

可以看到

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

三十岁之后数据有所下滑

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

作为老詹蜜

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

希望疫情赶快过去

还卧虎一个总冠军

python爬取17000个球员_Python爬取NBA球员生涯数据及简单可视化相关推荐

  1. python知乎爬虫收藏夹_Python爬取知乎问题收藏夹 爬虫入门

    简介 知乎的网站是比较好爬的,没有复杂的反爬手段,适合初学爬虫的人作为练习 因为刚刚入门python,所以只是先把知乎上热门问题的一些主要信息保存到数据库中,待以后使用这些信息进行数据分析,爬取的网页 ...

  2. python百度贴吧 发帖时间_python爬取贴吧帖子

    一.介绍 我们常遇到一些很长的贴吧连载帖子想存到本地再看 此文就是运用python爬取指定百度贴吧的帖子并存到本地满足需求 环境:python2.7 目标网页:[长篇连载]剑网3的正史和野史--从头开 ...

  3. python爬取知乎标题_python爬知乎热榜

    爬项目:知乎热榜标题.热度.简介. 第一步浏览网页源代码 确认在哪html 还是js里 标题和热度在html 标签内容在js 需要用到正则表达式: 第二先爬html 里的内容调用模块-再请求一下url ...

  4. python爬取京东评论分析_Python爬取京东商品评论+制作关键字云+情感分析图

    首先我们要了解一下,我们用requests包爬取的都只是写在HTML页面上的数据,但是呢,现在很多网站的数据都是通过js代码生成的,除非你找到它,不然是爬取不到的. 首先我随意打开一个京东的商品的详情 ...

  5. python爬取音乐并保存_Python爬取网易云音乐上评论火爆的歌曲

    前言 网易云音乐这款音乐APP本人比较喜欢,用户量也比较大,而网易云音乐之所以用户众多和它的歌曲评论功能密不可分,很多歌曲的评论非常有意思,其中也不乏很多感人的评论.但是,网易云音乐并没有提供热评排行 ...

  6. 用Python自动生成NBA巨星生涯数据曲线

    1.序 之前写过一个用 python 自动生成球员职业生涯数据的程序(原文请关注本人公众号),大家的反响很好,我也感到很欣慰.有问我怎么做的,如何学 python 的,也有提建议说集成到 web 里面 ...

  7. nba底层球员_探索个人NBA球员

    nba底层球员 入门 在本系列的第1部分中,您学习了数据科学和机器学习的基础知识. 您使用Jupyter Notebook,Pandas和scikit-learn探索了NBA球队与其估值之间的关系. ...

  8. python爬取虎扑评论_Python爬取NBA虎扑球员数据

    虎扑是一个认真而有趣的社区,每天有众多JRs在虎扑分享自己对篮球.足球.游戏电竞.运动装备.影视.汽车.数码.情感等一切人和事的见解,热闹.真实.有温度. 受害者地址 https://nba.hupu ...

  9. python 数据分析 书籍推荐 知乎_Python 爬取知乎 9674 个问答,揭秘最受欢迎的 98 本书!...

    原标题:Python 爬取知乎 9674 个问答,揭秘最受欢迎的 98 本书! 作者 | Yura 责编 | 胡巍巍 高尔基这话有没有道理我不知道, 咱也不敢问, 主要是现在也问不了. 那对我来说,读 ...

最新文章

  1. 毕业之后,这些年薪50万+的90后程序员经历了什么?
  2. Linux下进程间通信方式之管道、信号、共享内存、消息队列、信号量、套接字
  3. [ATF]-ARM级别/异常/状态切回时候的寄存器保存与恢复
  4. Ubuntu 16.04网速慢解决方法
  5. React + fetch API + 百度地图api + 跨域 填坑
  6. Exchange与ADFS单点登录 PART 3:部署和配置WAP
  7. 手写AspNetCore 认证授权代码
  8. 蚂蚁员工持股平台管理权变更 马云持股降至34%
  9. JAVA费罗切后拨只能调节5档,越野怪兽JAVA摆渡人(ANIMA)山地车
  10. 阶段1 - 03. 常用API第一部分 - 04. ArrayList集合
  11. Launcher 记录自定义桌面
  12. 干起了人人字幕组的翻译工作-贡献开源代码
  13. 苹果召回MacBook Air 内地官网声明用英文遭指责
  14. seata xid是什么_急:IDMA是什么?SDMA又是什么?
  15. sqlserver 数据库优化工具,安全性设置,并发设置,SQL耗时优化
  16. 网店卖什么产品最好卖?
  17. servlet生命周期(很有用)
  18. 众多日历网页特效素材一键即可获取
  19. 简单的Python编程范例
  20. YOLOv8实践 | 手把手训练教学及YOLOv8的多任务使用

热门文章

  1. 控制台模拟鼠标、键盘操作
  2. springboot+vue+Elementui农家乐管理系统-住宿-美食-活动
  3. 打不开计算机或文件夹,求助:我的电脑文件夹打不开了
  4. Qt-quick(qml) Canvas用法及鼠标绘制图形
  5. Qt GUI图形图像开发之QT表格控件QTableView详细使用方法与实例
  6. php 指纹验证失败,为什么手指沾了水,指纹识别就会失效?液体会导致指纹解锁失败?...
  7. 从失业到年薪百万,被你忽略的“一技之长”正在膨胀!
  8. 输入法不见了,咋办?输入法不能开机启动咋办?
  9. sql查询语句中分组添加小计,GROUPING的使用
  10. 通用汽车将向底特律郊区一家工厂投资3亿美元