Am I using the correct site to view the raw JSON d

2020-05-08 06:51发布

Using NBA Team Stats through Google Chrome's network tool, I believe I located the site to lead me to the raw JSON data

Preview

As a result, I am using the following URL:

https://stats.nba.com/stats/leaguedashteamstats?Conference=&DateFrom=&DateTo=&Division=&GameScope=&GameSegment=&LastNGames=0&LeagueID=00&Location=&MeasureType=Base&Month=0&OpponentTeamID=0&Outcome=&PORound=0&PaceAdjust=N&PerMode=PerGame&Period=0&PlayerExperience=&PlayerPosition=&PlusMinus=N&Rank=N&Season=2019-20&SeasonSegment=&SeasonType=Regular+Season&ShotClockRange=&StarterBench=&TeamID=0&TwoWay=0&VsConference=&VsDivision=

However, when I try to go to the above site, it does not load. This leads me to believe that perhaps I am looking at the wrong piece of information to get me to where I am trying to go. Any tips?

2条回答
不美不萌又怎样
2楼-- · 2020-05-08 07:07

After much digging, research, and trial & error, I was finally able to come up with a Python script (within Power BI) that would give me exactly what I needed.

import pandas as pd
import numpy
import requests
import json

headers = {'Accept': 'application/json, text/plain, */*','Accept-Encoding': 'gzip, deflate, br',
          'Accept-Language': 'en-US,en;q=0.9','Connection': 'keep-alive','Host': 'stats.nba.com',
          'Referer': 'https://stats.nba.com/','Sec-Fetch-Mode': 'cors','Sec-Fetch-Site': 'same-origin',
          'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) 
          Chrome/79.0.3945.130 Safari/537.36','x-nba-stats-origin': 'stats','x-nba-stats-token': 
          'true',}

url = 'https://stats.nba.com/stats/leaguedashplayerstats?College=&Conference=&Country=&DateFrom=&
    Division=&DraftPick=&DraftYear=&GameScope=&GameSegment=&Height=&LastNGames=0&LeagueID=00&
    Location=&MeasureType=Base&Month=0&OpponentTeamID=0&Outcome=&PORound=0&PaceAdjust=N&
    PerMode=PerGame&Period=0&PlayerExperience=&PlayerPosition=&PlusMinus=N&Rank=N&Season=2019-20&
    SeasonSegment=&SeasonType=Regular+Season&ShotClockRange=&StarterBench=&TeamID=0&TwoWay=0&
    VsConference=&VsDivision=&Weight='

json = requests.get(url, headers=headers).json()

data = json['resultSets'][0]['rowSet']
columns = json['resultSets'][0]['headers']

PpgData = pd.DataFrame.from_records(data, columns=columns)

Using this script allows me to convert all the JSON data to a table that will be properly formatted.

查看更多
Deceive 欺骗
3楼-- · 2020-05-08 07:15

That specific page seems to require a Referer header to be sent with the request so just loading it on it's own won't work.

In Power BI you can set custom headers if you select Advanced when adding a Web data source. In the optional Header section enter Referer and a value of https://stats.nba.com/.

查看更多
登录 后发表回答