Webscrape NBA统计NBA\api端点



我正试图从NBA统计数据中收集数据,特别是球队的得分。我正在为这个页面寻找nba\api端点,这样我就可以抓取数据。

如何查找端点?

打开开发工具(sfht-ctrl-i(并在"网络"下查找端点->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 Boxscore API您可以尝试将CSS、JS和HTML片段与网站隔离开来。

它在一个div.的源中

最新更新