python爬虫抓包爬取NBA中文网2020-2021 常规赛球员数据_什么名字都行吧的博客-程序员秘密

技术标签: python  

# 因为NBA中文网球员数据是通过json异步加载的,所以需要抓包实现
# json链接可以打开F12的Console查看
import time
import requests
import json
import csv


# 获取json文件里面的内容并提取信息
def get_json_content(url):
    # r_content=requests.get(url).content.decode('utf-8')
    r_content = requests.get(url).text

    # 将json文件里的内容转化为json格式,结构化方便提取数据
    r_json = json.loads(r_content)

    for i in range(0, 50):
        # 用一个字典保存球员数据所在的赛季
        data = {
    }
        player = r_json.get('payload')['players'][i]
        data['球员姓名'] = player['playerProfile']['displayName']
        data['球队'] = player['teamProfile']['displayAbbr']
        data['场均得分'] = player['statAverage']['pointsPg']
        data['上场时间'] = player['statAverage']['minsPg']

        data['篮板'] = player['statAverage']['rebsPg']
        data['助攻'] = player['statAverage']['assistsPg']
        data['盖帽'] = player['statAverage']['blocksPg']
        data['防守'] = player['statAverage']['defRebsPg']
        data['效率'] = player['statAverage']['efficiency']
        data['命中率'] = player['statAverage']['fgpct']

        print('第' + str(i + 1) + '个球员数据信息已经爬取完成')
        print(data)
        # 引用全局变量文件路径
        global path
        with open(path, 'a') as f:
            # 得到一个CSV写入对象
            writer = csv.writer(f, dialect=my_dialect)
            # 向CSV文件中写入一行数据
            writer.writerow((data['球员姓名'], data['球队'], data['场均得分'], data['上场时间'],
                             data['篮板'], data['助攻'], data['盖帽'], data['防守'], data['效率'],
                             data['命中率']))


if __name__ == '__main__':
    # 数据保存路径
    path = 'E://NBA_data.csv'


    # 自定义一个CSV文件内容分隔形式
    class my_dialect(csv.Dialect):
        lineterminator = '\n'
        delimiter = ','
        quotechar = '"'
        quoting = csv.QUOTE_MINIMAL


    with open(path, 'w') as f:
        writer = csv.writer(f, dialect=my_dialect)
        writer.writerow(('球员姓名', '球队', '场均得分', '上场时间',
                         '篮板', '助攻', '盖帽', '防守', '效率', '命中率'))

    # 球员数据的json包链接
    url = 'http://china.nba.com/static/data/league/playerstats_All_All_All_0_All_false_2020_2_All_Team_points_All_perGame.json'

    get_json_content(url)



  • 注意目前默认导出的文件路径是在E盘
  • 需要其它相关数据可以直接在浏览器打开url的json链接,自行查找并对代码进行修改
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/qq_41091397/article/details/112776215

智能推荐

洛谷 P2176 [USACO14FEB] 路障 Roadblock(Dijkstra最短路)_125小黑黑521的博客-程序员秘密

先求出一张图中的最短路径,并将其记录下来,我们首先思考:要有增量的前提是新的最短路径比原先的要短。那就好办了,我们枚举将最短路径中的每一条边都翻倍,再跑最短路。这样的出来的路径去一个最大值,到最后减去一开始的最短路径,这就是答案。为什么呢,因为如果我们对不在最短路径中的边进行翻倍的操作,那最短路径肯定没变,还是那样,所以只能改变最短路径中的边。#include<bits/stdc++....

python爬虫--使用正则表达式爬取赶集网的信息_python爬取赶集网租房信息正则表达式_qq_41735391的博客-程序员秘密

python爬虫--使用正则表达式爬取赶集网的信息代码代码import requestsimport reheader = { 'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/75.0.3770.100 Safari/537.36'}url='http://fz.ganji.com/zufang/pn1/'#获取页面的html的元素def

单片机模拟_wenxi1202的博客-程序员秘密

一.数制之间的转换。1.完成BCD码和十进制数的转换。(1).(123)10=(000100100011)BCD(2).(100101110101)BCD=(975)102.将下列十进制数转换成8、16、2进制数。(1).(154)10=(232)8=(9A)16=(10011010)2(2).(0.71875)10=(0.10111)23.将二进制数转换成8、16进制

Python中排序方法sort、函数sorted的key参数的作用分析_python列表sort中的key参数_LaoYuanPython的博客-程序员秘密

从Python2.4开始,list.sort方法 和 sorted方法 都增加了一个 ‘key’ 参数用来在进行比较之前指定每个列表元素上要调用的函数,将函数的返回值作为比较的依据。那么怎么使用这个key参数呢?有2种办法:1、使用一个函数,这个函数的操作对象就是要比较的数据元素,返回结果就是某个可以用来比较的Python类型的数据;2、使用匿名函数lambda,通过简单表达式返回某个可以...

《北漂的京城巡回礼》_weixin_30258027的博客-程序员秘密

本文地址原文地址2017-08-15微信号wozhuzaisi程序员的文娱情怀引子京城-北京的地铁大图 说起来,京城待了也有些年头了,去过了不少地方,想起来这些或明艳,或清爽,或古朴,或奢华的地方,我就禁不住想要分享给大家这些个美丽,带给我欢乐的地方。京城-美丽的景色...

随便推点

利用虚拟机Ubuntu的Samba服务,实现Windows映射网络盘到Ubuntu_samba ubuntu 虚拟机 映射_cfl927096306的博客-程序员秘密

我的环境:虚拟机Ubuntu和Windows是通过桥接的方式来连接我的需求:虚拟机Ubuntu下载了Android代码,想利用Windows的Android studio来看代码实现方式:通过Samba服务来解决1. Ubuntu安装Samba服务:apt-get install samba samba-common2. 编辑Samba的配置文件/etc/samba

.NET CORE 第一节 创建基本的 asp.net core_与上铺程序员为伍的博客-程序员秘密

.NET CORE 第一节 创建基本的 asp.net core 大家好首先呢,先声明一下这些个东东呢,都是我试验成功后的产物我也是个小白,这只能说是记录过程笔记,如果那些地方理解的不对请多多指教,谢谢大家了接下来就开始了哦首先呢当然是先创建个.NET core啦(备注:vs2017创建的)然后嘞就选择创建的框...

程序使用微软雅黑作为默认字体在xp下的问题_半斗的博客-程序员秘密

1、微软雅黑是 Vista 及更高版本 Windows 的标配中文字体,但不是 XP 的标配字体,XP 的任何一个 SP 或更新包都没有包含它。2、XP系统默认中文字体是宋体,在电脑上的显示效果不如微软雅黑好看。3、程序如果在XP下使用微软雅黑,但系统又没有该字体时,会使用XP默认字体。4、XP 系统上的微软雅黑字体,通常有两种来源:用户主动下载安装或安装 Of

RN学习笔记01:概述、特点与环境搭建_rn特点_howard2005的博客-程序员秘密

RN学习笔记01:概述、特点与环境搭建一、RN概述React Native(简称RN)是Facebook于2015年4月开源的跨平台移动应用开发框架,是Facebook早先开源的JS框架 React 在原生移动应用平台的衍生产物,目前支持iOS和安卓两大平台。RN使用Javascript语言,类似于HTML的JSX,以及CSS来开发移动应用,因此熟悉Web前端开发的技术人员只需很少的学习就...

求助关于atom编译python程序_第九日饕餮的博客-程序员秘密

刚开始使用atom,想用atom来编写python的程序,按照教程装了script,但运行程序后总显示一堆乱码,如图:该如何解决?

ant design pro表格排序(可以点击三次)_hideinform_旭旭1998的博客-程序员秘密

1、首先在column属性中添加sorter: true{ title: '流量计编码', dataIndex: 'flowmeterCode', hideInForm: true, ellipsis: true, sorter: true }点三次需要再加一个tablechange:tableChange如下,当表格排序有变化是重新加载表格: const tableChange = (pagination: any, fil