실시간 nba선수 스탯 데이터를 추출하고 머신러닝 하여 내년의 기록을 예측하는 인공지는 만들 거에요.
믄져 데이터를 수르지브르 하브니다
https://www.basketball-reference.com/leagues/NBA_2023_per_game.html
여기 데이터 크롤링 합니다.
from urllib.request import urlopen
from bs4 import BeautifulSoup
import pandas as pd
all_stats = pd.DataFrame()
start_year = 2020
end_year = 2023
for year in range(start_year, end_year + 1):
url = "<https://www.basketball-reference.com/leagues/NBA_{}_per_game.html>".format(year)
html = urlopen(url)
soup = BeautifulSoup(html, features="html.parser")
# 헤더 추출
headers = [th.getText() for th in soup.findAll('tr', limit=1)[0].findAll('th')]
headers = headers[1:]
그리고 선수들의 스택을 저장해야 겠지요???
따로 저장되어있던 스택을 모아서 player_stats로 만들어야 겠지요???
rows = soup.findAll('tr')[1:]
player_stats = [[td.getText() for td in rows[i].findAll('td')] for i in range(len(rows))]
tr의 1은 헤더여서 빼고 findAll을 통해서 찾아서 rows로 넣어야 겠지요??
그리고 player_stats에 td에 텍스트를 추출하여 2차원 배열로 넣어야 겠지요???
년도를 넣어야 겠지요???
stats = pd.DataFrame(player_stats, columns=headers)
stats['Year'] = year
프레임 합쳐주고요
all_stats = pd.concat([all_stats, stats], ignore_index=True)