python爬虫抓包爬取NBA中文网近20年球员数据
2017-09-23 19:36
429 查看
#爬取NBA中文网近20年的球员数据 #因为NBA中文网球员数据是通过json异步加载的,所以需要抓包实现 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) #球员数据所在赛季 season=r_json.get('payload')['season']['statsSeasonYearDisplay'] for i in range(0,50): #用一个字典保存球员数据所在的赛季 data = {} data['赛季'] =season player=r_json.get('payload')['players'][i] data['球员姓名']=player['playerProfile']['displayName'] data['国家']=player['playerProfile']['country'] data['球队']=player['teamProfile']['displayAbbr'] data['身高']=player['playerProfile']['height'] data['体重']=player['playerProfile']['weight'] data['位置']=player['playerProfile']['position'] data['上场时间']=player['statAverage']['minsPg'] data['场均得分']=player['statAverage']['pointsPg'] 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['篮板'],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(('赛季','球员姓名', '国家', '球队', '身高', '体重', '位置', '上场时间', 4000 '场均得分', '篮板', '助攻', '盖帽', '防守', '效率', '命中率')) # 球员数据的json包链接 url1 = 'http://china.nba.com/static/data/league/playerstats_All_All_All_0_All_false_' url2 = '_4_All_Team_points_All_perGame.json' for i in range(1996,2017): if (i!=2004): i=str(i) url=url1+i+url2 get_json_content(url) time.sleep(3)
相关文章推荐
- 利用python爬虫技术获取每天每场的每位球员NBA数据以及每日范特西评分
- [python3]nba球员数据爬虫
- python爬虫实战——NBA球员基本数据
- python 爬取新浪网站 NBA球员最近2个赛季库里前20场数据
- Python爬虫处理抓取数据中文乱码问题
- Python爬虫学习,记一次抓包获取js,从js函数中取数据的过程
- Python爬虫处理抓取数据中文乱码问题
- Python爬虫爬取NBA数据
- python抓取NBA现役球员基本信息数据并进行分析
- python简单框架实现爬取NBA球员数据
- Python爬虫:用BeautifulSoup进行NBA数据爬取
- Python实现爬虫爬取NBA数据功能示例
- Python爬虫:用BeautifulSoup进行NBA数据爬取
- Python简易爬虫以及嵌套数据类型
- python数据爬虫示例一
- Python简易爬虫以及嵌套数据类型
- Python爬虫爬取京东内存条数据并作简单分析
- python学习之 requests爬虫导致的中文乱码
- node爬虫返回数据乱码,但抓包不是乱码
- python 链接 ORACLE 数据库,并打印数据.解决中文乱码问题