我正试图从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.的源中