import requests
from pprint import pprint
headers = {
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/87.0.4280.141 Safari/537.36',
}
params = (
('LeagueID', '00'),
('Season', '2017-18'),
('TeamID', '1610612757'),
)
data = requests.get('https://www.nba.com/stats/players/cut/',
headers=headers, params=params).json()
pprint(data)
columns=data['resultSets'][0]['headers']
for result_set in data['resultSets']:
print("Result set", result_set['name'])
for item in result_set['rowSet']:
pprint(dict(zip(result_set['headers'], item)))
我尝试运行此代码,但系统性地出现以下错误:
JSONDecodeError: Expecting value: line 1 column 1 (char 0)
我的目标是从链接上的表中获取数据。我成功地使用了API,但是没有我分析所需的所有信息。这就是为什么我更喜欢通过“抓取”nba.com网站来做到这一点
您想在html网页上进行网页抓取。但是您正在请求中将它们转换为json。两者都不同。您提供的链接不是RESTAPI
您可以尝试使用以下框架https://pypi.org/project/beautifulsoup4/
有关此框架的更多信息,请参阅文档
您缺少一些headers参数。另外,我认为团队id查询不正确。您还需要使用
url = 'https://stats.nba.com/stats/synergyplaytypes'
输出:
您可以通过操作开发工具和检查来找到所有这些信息。您想进入网络->;XHR,然后在那里搜索以查看哪个请求获得数据(在打开开发工具后,可能需要重新加载页面)
然后将其更改为Headers,您将看到url:
并向下滚动查看其他使用的标题和参数。你可能不需要所有这些,但似乎有一些是绝对需要的。你可以到处玩,看看nba api需要哪一个或哪一个
相关问题 更多 >
编程相关推荐