链接:http://china.nba.com/playerindex/

所需获取JSON数据页面链接:http://china.nba.com/static/data/league/playerlist.json

数据来源:NBA中国官网

库:

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 小白爬虫求带

python抓取NBA现役球员基本信息数据的更多相关文章

  1. python抓取NBA现役球员基本信息数据并进行分析

    链接:http://china.nba.com/playerindex/ 所需获取JSON数据页面链接:http://china.nba.com/static/data/league/playerli ...

  2. 手把手教你用Python抓取AWS的日志(CloudTrail)数据

    数据时代,利用数据做决策是大数据的核心价值. 本文手把手,教你使用python进行AWS的CloudTrail配置,进行日志抓取.进行数据分析,发现数据价值! 如今是云的时代,许多公司都把自己的IT架 ...

  3. 浅谈如何使用python抓取网页中的动态数据

    我们经常会发现网页中的许多数据并不是写死在HTML中的,而是通过js动态载入的.所以也就引出了什么是动态数据的概念, 动态数据在这里指的是网页中由Javascript动态生成的页面内容,是在页面加载到 ...

  4. 一篇文章教会你用Python抓取抖音app热点数据

    今天给大家分享一篇简单的安卓app数据分析及抓取方法.以抖音为例,我们想要抓取抖音的热点榜数据. 要知道,这个数据是没有网页版的,只能从手机端下手. 首先我们要安装charles抓包APP数据,它是一 ...

  5. python抓取网页中的动态数据

    一.概念 网页中的许多数据并不是写死在HTML中的,而是通过js动态载入的.所以也就引出了什么是动态数据的概念,动态数据在这里指的是网页中由Javascript动态生成的页面内容,是在页面加载到浏览器 ...

  6. Python抓取淘宝IP地址数据

    def fetch(ip): url = 'http://ip.taobao.com/service/getIpInfo.php?ip=' + ip result = [] try: response ...

  7. 使用python抓取汽车之家车型数据

    import requests import pymysql HOSTNAME = '127.0.0.1' USERNAME = 'root' PASSWORD = 'zyndev' DATABASE ...

  8. python requests抓取NBA球员数据,pandas进行数据分析,echarts进行可视化 (前言)

    python requests抓取NBA球员数据,pandas进行数据分析,echarts进行可视化 (前言) 感觉要总结总结了,希望这次能写个系列文章分享分享心得,和大神们交流交流,提升提升. 因为 ...

  9. 使用 Python 抓取欧洲足球联赛数据

    Web Scraping在大数据时代,一切都要用数据来说话,大数据处理的过程一般需要经过以下的几个步骤    数据的采集和获取    数据的清洗,抽取,变形和装载    数据的分析,探索和预测    ...

随机推荐

  1. Ubuntu 12.04下PHP环境的搭建(LAMP)

    1.首先打开命令行,切换到root身份,获得最新的软件包 su root sudo apt-get install update 2.安装MySQL数据库 sudo apt-get install m ...

  2. ajax常用写法

    $.ajax( url,{ type:"post", data:{},}) .done(function() { alert("success"); }) .f ...

  3. IOS开发中如何使用通知NSNotification传值

    通知 是在跳转控制器之间常用的传值代理方式,除了代理模式,通知更方便.便捷,一个简单的Demo实现通知的跳转传值. 输入所要发送的信息 ,同时将label的值通过button方法调用传递, - (IB ...

  4. mysql,mybatis使用中遇到的类型转化的问题

    产生原因还没有明白,先记录一下. 使用DATEDIFF函数,计算两个日期的时间差.在mybatis中,resultType 是map.在代码中,根据map的key取值的时候. 在mysql 5.5.3 ...

  5. UVa 357 - Let Me Count The Ways

    题目大意:也是硬币兑换问题,与147.674用同样的方法即可解决. #include <cstdio> #include <cstring> #define MAXN 3000 ...

  6. 动态创建Fastreport(delphi)

    动态创建Fastreport分以下几个步骤: 1.首先清空Fastreport,定义全局变量,并加载数据集    frReport.Clear;    frReport.DataSets.Add(fr ...

  7. jquery 中prop()的使用方法

    1:设置input的选中属性:$('.passenger').find('.is-need-tel').prop('checked',true); 2:获取input是否选中: $('.passeng ...

  8. Linux系统迁移

    文章来源http://blog.csdn.net/gt945/article/details/12253585 sudo rsync -aAXvP --exclude-from=exclude.txt ...

  9. RadioGroup

    获取选中的Text radioGroup1.Properties.Items[radioGroup1.SelectedIndex].Description

  10. SVG的内部事件添加

    SVG的内部事件添加: <%@ page language="java" contentType="text/html; charset=UTF-8" p ...