я нашел в блоге Грега Реда в о выскабливание HTML от nba.com:Как работать с данными с NBA.com?
http://www.gregreda.com/2015/02/15/web-scraping-finding-the-api/
Я пытался работать с кодом, который он написал там:
import requests
import json
url = 'http://stats.nba.com/stats/leaguedashteamshotlocations?Conference=&DateFr' + \
'om=&DateTo=&DistanceRange=By+Zone&Division=&GameScope=&GameSegment=&LastN' + \
'Games=0&LeagueID=00&Location=&MeasureType=Opponent&Month=0&OpponentTeamID' + \
'=0&Outcome=&PORound=0&PaceAdjust=N&PerMode=PerGame&Period=0&PlayerExperien' + \
'ce=&PlayerPosition=&PlusMinus=N&Rank=N&Season=2014-15&SeasonSegment=&Seas' + \
'onType=Regular+Season&ShotClockRange=&StarterBench=&TeamID=0&VsConference=&VsDivision='
response = requests.get(url)
response.raise_for_status()
shots = response.json()['resultSets']['rowSet']
avg_percentage = shots['OPP_FG_PCT']
print(avg_percentage)
Но он возвращает:
Traceback (most recent call last):
File "C:\Python34\nba.py", line 91, in <module>
avg_percentage = shots['OPP_FG_PCT']
TypeError: list indices must be integers, not str
Я знаю только базовый Python, поэтому я не мог понять, как получить список целых чисел из данные. Может кто-нибудь объяснить?
Когда я использую [0], то она возвращает TraceBack (самый последний вызов последнего): Файл "C: \ Python34 \ nba.py", строка 13, в выстрелов = response.json() [ 'результирующих' ] [0] ['rowSet'] KeyError: 0 –
Я вижу, в чем проблема. Я обновил свой ответ с кучей новой информации. –
Я написал ваш код с печатью (result_sets.keys()), и он вернулся: Traceback (последний последний вызов): Файл «C: \ Python34 \ nba.py», строка 16, в result_sets = pickle. load (open (имя_файла)) TypeError: 'str' не поддерживает интерфейс буфера –