from peewee import *
db = MySQLDatabase("rain", host="自己mysqlip", port=3306(端口), user="用户名", password="密码")
class BaseModel(Model):
class Meta:
database = db
"""
char类型, 要设置最大长度
对于无法确定最大长度的字段,可以设置为Text
设计表的时候 采集到的数据要尽量先做格式化处理
default和null=True
"""
class bart(BaseModel):#球队
city = CharField(max_length=35, verbose_name="城市")
bar = CharField(max_length=35, verbose_name="球队")
win = CharField(max_length=6, verbose_name="胜利数")
class playert(BaseModel): #球员信息
name= CharField(max_length=20, verbose_name="名称")
points = FloatField(default=0, verbose_name='得分')
assists =FloatField(default=0, verbose_name="助攻")
blocks=FloatField(default=0, verbose_name="助攻")
if __name__ == "__main__":
db.create_tables([bart,playert])
绑定数据库信息运行
查看数据库是否有表:
网页json格式建议下载一个json插件便与分析。
爬虫代码
import requests
from xlzmodeles import bart, playert
url = 'https://china.nba.cn/stats2/season/conferencestanding.json?locale=zh_CN' #球队数据json
url2='https://china.nba.cn/stats2/league/playerstats.json?conference=All&country=All&individual=All&locale=zh_CN&pageIndex=0&position=All&qualified=false&season=2021&seasonType=4&split=All+Team&statType=points&team=All&total=perGame'
res = requests.get(url)
res.encoding = 'utf-8'
data = res.json()
res2 = requests.get(url2)
res2.encoding='utf-8'
data2 = res2.json()
temp = data['payload']['standingGroups']
for item in temp:
teams = item['teams']
for team in teams:
# print(team['profile']['city']) ## 城市名称
city = team['profile']['city']
# print(team['profile']['name']) # 球队名称
bar = team['profile']['name']
# print(team['standings']['wins']) #球队胜利
win = team['standings']['wins']
Bar = bart()
Bar.city = city
Bar.bar = bar
Bar.win = win
Bar.save()
print("第一张表导入输出成功")
# print(data2['payload']['players'][0]['playerProfile']['displayName'])
#球员
# print(data2['payload']['players'])
temp2 =data2['payload']['players']
for player1 in temp2:
# print(player['playerProfile']['displayName']) # 名字
name =player1['playerProfile']['displayName']
# print(player['statAverage']['pointsPg'])#场均得分
points = player1['statAverage']['pointsPg']
# print(player['statAverage']['assistsPg']) #助攻
assists= player1['statAverage']['assistsPg']
# print(player['statAverage']['blocksPg']) # 盖帽
blocks =player1['statAverage']['blocksPg']
Player= playert()
Player.name = name
Player.points = points
Player.assists= assists
Player.blocks = blocks
Player.save()
print("全成功")
查看数据库
下班啦