Использую ли я правильный сайт для просмотра необработанных данных JSON? - PullRequest
0 голосов
/ 21 января 2020

Используя Статистика команды NBA через сетевой инструмент Google Chrome, я считаю, что нашел сайт, чтобы привести меня к необработанным JSON данным

Preview

В результате я использую следующий 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=

Однако, когда я пытаюсь go к вышеуказанному сайту, он не загружается. Это заставляет меня поверить, что, возможно, я смотрю не ту информацию, чтобы попасть туда, куда я пытаюсь go. Любые советы?

Ответы [ 2 ]

1 голос
/ 22 января 2020

Эта указанная c страница, по-видимому, требует отправки заголовка Referer вместе с запросом, поэтому просто загрузить его самостоятельно не получится.

В Power BI вы можете установить пользовательские заголовки, если выберете Дополнительно при добавлении источника веб-данных. В необязательном разделе заголовка введите Referer и значение https://stats.nba.com/.

0 голосов
/ 28 января 2020

После долгих поисков, исследований, проб и ошибок я наконец-то смог придумать сценарий Python (в Power BI), который дал бы мне именно то, что мне нужно.

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)

Использование этого скрипта позволяет мне преобразовать все данные JSON в таблицу, которая будет правильно отформатирована.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...