Web Scrape NBA 统计数据 nba_api 个端点
Webscrape NBA stats nba_api endpoints
我正在尝试从 NBA 统计数据中抓取数据,特别是 the team's boxscore。我正在寻找此页面的 nba_api 端点,以便我可以抓取数据。
如何找到端点?
我不是一个狂热的体育迷,但看起来是这样的:A free NBA Boxscore API
您可以尝试从站点中隔离 CSS、JS 和 HTML 部分。
它在 div 的来源中。
您可以通过打开 Dev Tools (sfht-ctrl-i) 找到端点并在 Network -> XHR 下查看(您可能需要刷新页面)。观察面板上是否开始弹出请求,然后找到包含您的数据的请求。前往 Headers 查找发出请求所需的信息:
import requests
import pandas as pd
url = 'https://stats.nba.com/stats/leaguegamelog'
headers= {'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/96.0.4664.110 Safari/537.36',
'Referer': 'https://www.nba.com/'}
payload = {
'Counter': '1000',
'DateFrom': '',
'DateTo': '',
'Direction': 'DESC',
'LeagueID': '00',
'PlayerOrTeam': 'T',
'Season': '2021-22',
'SeasonType': 'Regular Season',
'Sorter': 'DATE'}
jsonData = requests.get(url, headers=headers, params=payload).json()
rows = jsonData['resultSets'][0]['rowSet']
columns = jsonData['resultSets'][0]['headers']
df = pd.DataFrame(rows, columns=columns)
输出:
print(df)
SEASON_ID TEAM_ID TEAM_ABBREVIATION ... PTS PLUS_MINUS VIDEO_AVAILABLE
0 22021 1610612759 SAS ... 110 2 1
1 22021 1610612744 GSW ... 108 -2 1
2 22021 1610612761 TOR ... 93 5 1
3 22021 1610612755 PHI ... 88 -5 1
4 22021 1610612738 BOS ... 124 20 1
... ... ... ... ... ... ...
2133 22021 1610612754 IND ... 122 -1 1
2134 22021 1610612749 MIL ... 127 23 1
2135 22021 1610612751 BKN ... 104 -23 1
2136 22021 1610612744 GSW ... 121 7 1
2137 22021 1610612747 LAL ... 114 -7 1
[2138 rows x 29 columns]
我正在尝试从 NBA 统计数据中抓取数据,特别是 the team's boxscore。我正在寻找此页面的 nba_api 端点,以便我可以抓取数据。
如何找到端点?
我不是一个狂热的体育迷,但看起来是这样的:A free NBA Boxscore API 您可以尝试从站点中隔离 CSS、JS 和 HTML 部分。
它在 div 的来源中。
您可以通过打开 Dev Tools (sfht-ctrl-i) 找到端点并在 Network -> XHR 下查看(您可能需要刷新页面)。观察面板上是否开始弹出请求,然后找到包含您的数据的请求。前往 Headers 查找发出请求所需的信息:
import requests
import pandas as pd
url = 'https://stats.nba.com/stats/leaguegamelog'
headers= {'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/96.0.4664.110 Safari/537.36',
'Referer': 'https://www.nba.com/'}
payload = {
'Counter': '1000',
'DateFrom': '',
'DateTo': '',
'Direction': 'DESC',
'LeagueID': '00',
'PlayerOrTeam': 'T',
'Season': '2021-22',
'SeasonType': 'Regular Season',
'Sorter': 'DATE'}
jsonData = requests.get(url, headers=headers, params=payload).json()
rows = jsonData['resultSets'][0]['rowSet']
columns = jsonData['resultSets'][0]['headers']
df = pd.DataFrame(rows, columns=columns)
输出:
print(df)
SEASON_ID TEAM_ID TEAM_ABBREVIATION ... PTS PLUS_MINUS VIDEO_AVAILABLE
0 22021 1610612759 SAS ... 110 2 1
1 22021 1610612744 GSW ... 108 -2 1
2 22021 1610612761 TOR ... 93 5 1
3 22021 1610612755 PHI ... 88 -5 1
4 22021 1610612738 BOS ... 124 20 1
... ... ... ... ... ... ...
2133 22021 1610612754 IND ... 122 -1 1
2134 22021 1610612749 MIL ... 127 23 1
2135 22021 1610612751 BKN ... 104 -23 1
2136 22021 1610612744 GSW ... 121 7 1
2137 22021 1610612747 LAL ... 114 -7 1
[2138 rows x 29 columns]