python爬取17000个球员_Python爬取NBA球员生涯数据及简单可视化
由于全球疫情的原因
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球员生涯数据及简单可视化相关推荐
- python知乎爬虫收藏夹_Python爬取知乎问题收藏夹 爬虫入门
简介 知乎的网站是比较好爬的,没有复杂的反爬手段,适合初学爬虫的人作为练习 因为刚刚入门python,所以只是先把知乎上热门问题的一些主要信息保存到数据库中,待以后使用这些信息进行数据分析,爬取的网页 ...
- python百度贴吧 发帖时间_python爬取贴吧帖子
一.介绍 我们常遇到一些很长的贴吧连载帖子想存到本地再看 此文就是运用python爬取指定百度贴吧的帖子并存到本地满足需求 环境:python2.7 目标网页:[长篇连载]剑网3的正史和野史--从头开 ...
- python爬取知乎标题_python爬知乎热榜
爬项目:知乎热榜标题.热度.简介. 第一步浏览网页源代码 确认在哪html 还是js里 标题和热度在html 标签内容在js 需要用到正则表达式: 第二先爬html 里的内容调用模块-再请求一下url ...
- python爬取京东评论分析_Python爬取京东商品评论+制作关键字云+情感分析图
首先我们要了解一下,我们用requests包爬取的都只是写在HTML页面上的数据,但是呢,现在很多网站的数据都是通过js代码生成的,除非你找到它,不然是爬取不到的. 首先我随意打开一个京东的商品的详情 ...
- python爬取音乐并保存_Python爬取网易云音乐上评论火爆的歌曲
前言 网易云音乐这款音乐APP本人比较喜欢,用户量也比较大,而网易云音乐之所以用户众多和它的歌曲评论功能密不可分,很多歌曲的评论非常有意思,其中也不乏很多感人的评论.但是,网易云音乐并没有提供热评排行 ...
- 用Python自动生成NBA巨星生涯数据曲线
1.序 之前写过一个用 python 自动生成球员职业生涯数据的程序(原文请关注本人公众号),大家的反响很好,我也感到很欣慰.有问我怎么做的,如何学 python 的,也有提建议说集成到 web 里面 ...
- nba底层球员_探索个人NBA球员
nba底层球员 入门 在本系列的第1部分中,您学习了数据科学和机器学习的基础知识. 您使用Jupyter Notebook,Pandas和scikit-learn探索了NBA球队与其估值之间的关系. ...
- python爬取虎扑评论_Python爬取NBA虎扑球员数据
虎扑是一个认真而有趣的社区,每天有众多JRs在虎扑分享自己对篮球.足球.游戏电竞.运动装备.影视.汽车.数码.情感等一切人和事的见解,热闹.真实.有温度. 受害者地址 https://nba.hupu ...
- python 数据分析 书籍推荐 知乎_Python 爬取知乎 9674 个问答,揭秘最受欢迎的 98 本书!...
原标题:Python 爬取知乎 9674 个问答,揭秘最受欢迎的 98 本书! 作者 | Yura 责编 | 胡巍巍 高尔基这话有没有道理我不知道, 咱也不敢问, 主要是现在也问不了. 那对我来说,读 ...
最新文章
- 毕业之后,这些年薪50万+的90后程序员经历了什么?
- Linux下进程间通信方式之管道、信号、共享内存、消息队列、信号量、套接字
- [ATF]-ARM级别/异常/状态切回时候的寄存器保存与恢复
- Ubuntu 16.04网速慢解决方法
- React + fetch API + 百度地图api + 跨域 填坑
- Exchange与ADFS单点登录 PART 3:部署和配置WAP
- 手写AspNetCore 认证授权代码
- 蚂蚁员工持股平台管理权变更 马云持股降至34%
- JAVA费罗切后拨只能调节5档,越野怪兽JAVA摆渡人(ANIMA)山地车
- 阶段1 - 03. 常用API第一部分 - 04. ArrayList集合
- Launcher 记录自定义桌面
- 干起了人人字幕组的翻译工作-贡献开源代码
- 苹果召回MacBook Air 内地官网声明用英文遭指责
- seata xid是什么_急:IDMA是什么?SDMA又是什么?
- sqlserver 数据库优化工具,安全性设置,并发设置,SQL耗时优化
- 网店卖什么产品最好卖?
- servlet生命周期(很有用)
- 众多日历网页特效素材一键即可获取
- 简单的Python编程范例
- YOLOv8实践 | 手把手训练教学及YOLOv8的多任务使用
热门文章
- 控制台模拟鼠标、键盘操作
- springboot+vue+Elementui农家乐管理系统-住宿-美食-活动
- 打不开计算机或文件夹,求助:我的电脑文件夹打不开了
- Qt-quick(qml) Canvas用法及鼠标绘制图形
- Qt GUI图形图像开发之QT表格控件QTableView详细使用方法与实例
- php 指纹验证失败,为什么手指沾了水,指纹识别就会失效?液体会导致指纹解锁失败?...
- 从失业到年薪百万,被你忽略的“一技之长”正在膨胀!
- 输入法不见了,咋办?输入法不能开机启动咋办?
- sql查询语句中分组添加小计,GROUPING的使用
- 通用汽车将向底特律郊区一家工厂投资3亿美元