python爬虫抓包爬取NBA中文网2020-2021 常规赛球员数据

# 因为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链接,自行查找并对代码进行修改
  • 0
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值