库:
requests 用于解析页面文本数据
pandas 用于处理数据
时间:
2017/2/17 (因为为现役球员,故需注明时间节点)
开工:
得到了数据,这下就好办了
先上简单粗暴够用的代码
- import requests
- 2 import pandas as pd
- 3 user_agent = 'User-Agent: Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; Maxthon 2.0)'
- 4 headers = {'User-Agent':user_agent}
- 5 url='http://china.nba.com/static/data/league/playerlist.json'
- 6 #解析网页
- 7 r=requests.get(url,headers=headers).json()
- 8 num=int(len(r['payload']['players']))-1 #得到列表r['payload']['players']的长度
- 9 p1_cols=[] #用来存放p1数组的列
- 10 p2_cols=[] #用来存放p2数组的列
- 11 #遍历其中一个['playerProfile'],['teamProfile'] 得到各自列名,添加到p1_cols和p2_cols列表中
- 12 for x in r['payload']['players'][0]['playerProfile']:
- 13 p1_cols.append(x)
- 14 for y in r['payload']['players'][0]['teamProfile']:
- 15 p2_cols.append(y)
- 16 p1=pd.DataFrame(columns=p1_cols) #初始化一个DataFrame p1 用来存放playerProfile下的数据
- 17 p2=pd.DataFrame(columns=p2_cols) #初始化一个DataFrame p1 用来存放playerProfile下的数据
- 18 #遍历一次得到一个球员的信息,分别添加到DataFrame数组中
- 19 for z in range(num):
- 20 player=pd.DataFrame([r['payload']['players'][z]['playerProfile']])
- 21 team=pd.DataFrame([r['payload']['players'][z]['teamProfile']])
- 22 p1=p1.append(player,ignore_index=True)
- 23 p2=p2.append(team,ignore_index=True)
- 24 p3=pd.merge(p1,p2,left_index=True,right_index=True) #数据合并
- 25 p3.to_csv('f://NBA//nba_player.csv',index=False)
只能说简单粗暴,25 行代码搞定,恩,不过数据已经拿到手。
接下来查看一下
数据量不大,也可以用 EXCEL 来'偷窥'
拿到数据,总得稍微把玩一下,才对得起这堆数据,不然和撩到了步行街标准 9 分妹子就分手有什么区别呢?
了解下基本的数据情况
截止全明星赛前有 449 名现役球员
那么各球队球员数量具体是多少呢?
老詹的骑士还差个控位,湖人在为明年做准备
很想了解下 NBA 球员国籍'country'的情况
也就是说 449 名现役大名单球员里,有 340 名美国佬咯,螺旋稳
其中,
亚洲帅哥 2 枚,格鲁吉亚的 Zaza Pachulia 和 以色列的 Omri Casspi 撑场
非洲在大帝的领导下,率将领 14 名出征,NBA 官网上 28 卡国籍是刚果。
欧洲 55 人;大洋洲 8 人 (澳大利亚 7 人,新西兰 1 人);南美 12 人;还有 4 人,暂且未知(NBA 数据库未补充)
接下来,看一下现役球员中,每一届球员的情况
98 届的 Vince Carter,Paul Pierce,Dirk Nowitzki
99 届的 Manu Ginobili,Jason Terry,Metta World Peace
00 届的 Jamal Crawford,Mike Miller
01 届的 Tyson Chandler,Pau Gasol,Richard Jefferson,Joe Johnson,Tony Parker,Zach Randolph
02 届的 Matt Barnes,Mike Dunleavy,Udonis Haslem,Nene,Luis Scola
终有一天他们会离去,就像去年夏天的 Tim,Bryant 和 Kevin
还是那句话,老兵不死,只是凋零。
03 白金一代也只有 12 人在战斗了,当安东尼顶替乐福进入 16/17 / 全明星赛时,老詹说自己不再是年龄最大的那位了,当时的你又在想啥呢?
这里我们需要再看一项数据,就是 NBA 现役球员的 NBA 平均职业生涯年龄是多少呢?
现役球员平均职业年龄为 4.76 年。
新生代球员配上新时代的体系及打法,NBA 也是越来越好看,越来越激烈。每一位成功的球员都是为那个时代而生的。
下面,我们看一个很有意思的数据
现役 NBA 球员,最受欢迎的号码前 5 是哪几个号码呢?
只能说,666。原来 5 号,8 号这么受欢迎。
还有,我们平时看 NBA, 主播评论员都是只说美国人的 lastName,所以有时候一个队有几个汤普森或者约翰逊,满脸茫然
朋友,我会告诉你,共有 7 个约翰逊,统统来自美国。东部 4 个约翰逊,西部 3 个约翰逊。
热火 VS 快船比赛解说可能就是,约翰逊外线传球给约翰逊被杀出来的约翰逊抢断成功,掩耳不及迅雷之势传给快下的约翰逊,轻松扣篮得手。
那球员的位置分布怎么样呢?小球时代,自我感觉整个联盟后场球员会遥遥领先前场球员,一起来看看,果不其然。
今天就聊到这里吧
还有许多有趣的字段,有待开发。无兄弟,不篮球,期待与大伙一起为了我们兴趣,一起讨论交流,
I am a JRS,We are family , 他强任他强。
小白一枚,能力有限,做的不好的地方,尤其是逻辑与思维上的东西,需要大神们看到了多多指教和斧正 buddyquan。
小白博客:QQ:1749061919 小白爬虫求带来源: http://www.bubuko.com/infodetail-1949006.html