import time
import requests
import json
import csv
def get_json_content(url):
r_content = requests.get(url).text
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:
writer = csv.writer(f, dialect=my_dialect)
writer.writerow((data['球员姓名'], data['球队'], data['场均得分'], data['上场时间'],
data['篮板'], data['助攻'], data['盖帽'], data['防守'], data['效率'],
data['命中率']))
if __name__ == '__main__':
path = 'E://NBA_data.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(('球员姓名', '球队', '场均得分', '上场时间',
'篮板', '助攻', '盖帽', '防守', '效率', '命中率'))
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链接,自行查找并对代码进行修改