- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我想抓取 NBA 高级统计数据。首先,我只想抓取团队的名称,但我遇到了一个问题,即它没有收集任何信息。我可能在 find_all 函数中寻找错误的东西。感谢您的帮助!
import requests
from bs4 import BeautifulSoup
url = "https://stats.nba.com/teams/elbow-touch/?sort=ELBOW_TOUCHES&dir=-1"
result = requests.get(url)
c = result.content
soup = Beaut ifulSoup(c,"html.parser")
title = soup.title.text
print(title)
teams = soup.find_all('td',{'class':'team'})
for element in teams:
print(element.text)
我要抓取的网站:
最佳答案
该站点是动态的,因此您需要使用 selenium
:
from selenium import webdriver
from bs4 import BeautifulSoup as soup
d = webdriver.Chrome('/path/to/chromedriver')
d.get('https://stats.nba.com/teams/elbow-touch/?sort=ELBOW_TOUCHES&dir=-1')
s = soup(d.page_source, 'html.parser').find('table', {'class':'table'})
headers, [_, *data] = [i.text for i in s.find_all('th')], [[i.text for i in b.find_all('td')] for b in s.find_all('tr')]
final_data = [i for i in data if len(i) > 1]
现在,final_data
存储所有团队的结果:
[['Houston Rockets', '63', '38', '25', '242.0', '367.0', '8.8', '2.4', '3.8', '64.2', '0.4', '0.7', '62.8', '5.5', '-', '3.7', '-', '0.5', '14.0', '0.5', '5.4', '0.3', '-'], ['Milwaukee Bucks', '63', '48', '15', '241.2', '409.5', '9.5', '2.3', '3.6', '62.4', '0.7', '1.0', '73.3', '5.4', '-', '4.3', '-', '0.6', '13.0', '0.5', '5.2', '0.4', '-'], ['New York Knicks', '62', '13', '49', '241.6', '420.4', '9.5', '2.0', '3.4', '56.8', '0.7', '1.0', '69.8', '4.8', '-', '4.7', '-', '0.6', '13.7', '0.5', '5.3', '0.5', '-'], ['Charlotte Hornets', '63', '29', '34', '242.0', '409.7', '9.6', '1.7', '3.5', '50.0', '1.1', '1.5', '71.9', '4.7', '-', '4.6', '-', '0.7', '14.2', '0.4', '4.5', '0.7', '-'], ['Detroit Pistons', '62', '31', '31', '242.8', '437.0', '10.0', '1.6', '3.2', '51.3', '0.9', '1.2', '75.3', '4.4', '-', '5.0', '-', '0.9', '17.6', '0.7', '6.8', '0.6', '-'], ['Washington Wizards', '62', '25', '37', '243.2', '420.2', '10.5', '2.5', '4.3', '58.4', '0.9', '1.2', '76.4', '6.1', '-', '4.6', '-', '0.7', '15.5', '0.6', '5.6', '0.5', '-'], ['Atlanta Hawks', '64', '22', '42', '242.3', '434.9', '11.0', '2.2', '3.7', '58.6', '1.2', '1.5', '77.3', '5.7', '-', '5.3', '-', '0.7', '12.9', '0.7', '6.5', '0.7', '-'], ['Brooklyn Nets', '65', '32', '33', '243.8', '440.3', '11.2', '2.5', '4.4', '58.3', '1.2', '1.7', '70.8', '6.4', '-', '4.6', '-', '0.7', '14.9', '0.9', '7.9', '0.8', '-'], ['San Antonio Spurs', '64', '35', '29', '241.6', '402.3', '11.3', '2.3', '4.1', '55.5', '0.8', '1.0', '85.7', '5.6', '-', '5.8', '-', '1.1', '18.7', '0.5', '4.8', '0.4', '-'], ['Boston Celtics', '64', '38', '26', '241.6', '420.8', '11.5', '2.5', '4.2', '58.4', '0.5', '0.7', '71.7', '5.5', '-', '5.7', '-', '0.9', '15.0', '0.6', '5.6', '0.3', '-'], ['Toronto Raptors', '64', '46', '18', '242.3', '418.0', '11.5', '3.5', '5.9', '59.6', '1.2', '1.5', '78.1', '8.3', '-', '4.1', '-', '0.7', '16.3', '0.4', '3.7', '0.7', '-'], ['Portland Trail Blazers', '63', '39', '24', '241.6', '409.8', '11.8', '2.4', '4.6', '51.9', '1.2', '1.5', '80.2', '6.1', '-', '5.5', '-', '1.0', '18.8', '0.7', '5.7', '0.7', '-'], ['Utah Jazz', '61', '36', '25', '240.8', '435.9', '11.9', '2.0', '3.8', '51.1', '1.4', '2.2', '66.7', '5.4', '-', '5.9', '-', '1.0', '17.1', '0.7', '5.9', '1.0', '-'], ['Minnesota Timberwolves', '63', '29', '34', '241.6', '412.4', '12.0', '2.9', '5.0', '57.3', '1.3', '1.6', '79.8', '7.3', '-', '5.2', '-', '1.0', '19.5', '0.6', '5.2', '0.7', '-'], ['Chicago Bulls', '63', '18', '45', '243.2', '411.3', '12.4', '2.8', '4.8', '57.9', '0.7', '0.9', '77.6', '6.4', '-', '6.3', '-', '0.8', '12.4', '0.6', '4.5', '0.4', '-'], ['LA Clippers', '65', '36', '29', '241.9', '430.4', '12.4', '2.9', '5.1', '56.9', '1.0', '1.5', '69.5', '7.0', '-', '5.4', '-', '0.9', '15.9', '0.7', '5.5', '0.6', '-'], ['Miami Heat', '62', '28', '34', '240.4', '426.1', '12.6', '2.0', '4.0', '50.2', '0.7', '1.3', '56.8', '4.9', '-', '7.0', '-', '1.1', '15.4', '0.4', '3.4', '0.5', '-'], ['New Orleans Pelicans', '65', '29', '36', '240.0', '435.0', '12.6', '3.5', '6.4', '54.8', '1.2', '1.6', '74.5', '8.4', '-', '4.4', '-', '0.9', '20.4', '0.7', '5.2', '0.8', '-'], ['Phoenix Suns', '64', '13', '51', '242.3', '435.8', '12.9', '2.8', '5.0', '56.7', '1.0', '1.3', '73.5', '6.8', '-', '6.2', '-', '0.8', '13.7', '0.6', '4.7', '0.6', '-'], ['Oklahoma City Thunder', '63', '39', '24', '242.0', '364.8', '13.6', '3.2', '5.8', '54.5', '1.0', '1.4', '65.9', '7.5', '-', '5.8', '-', '0.9', '14.7', '0.7', '4.8', '0.6', '-'], ['Dallas Mavericks', '62', '27', '35', '240.8', '435.4', '13.9', '1.8', '3.1', '55.9', '1.2', '1.6', '76.5', '5.0', '-', '8.6', '-', '1.1', '13.1', '0.8', '5.7', '0.7', '-'], ['Golden State Warriors', '63', '44', '19', '241.6', '442.3', '13.9', '2.8', '4.8', '57.0', '1.2', '1.5', '81.7', '6.9', '-', '7.2', '-', '1.6', '21.7', '0.8', '5.8', '0.7', '-'], ['Orlando Magic', '63', '28', '35', '241.2', '405.0', '14.0', '3.2', '5.7', '55.8', '1.1', '1.4', '80.9', '7.7', '-', '6.5', '-', '1.4', '21.8', '0.6', '4.0', '0.7', '-'], ['Los Angeles Lakers', '63', '30', '33', '241.6', '405.9', '14.2', '3.3', '5.7', '57.8', '1.1', '1.6', '67.0', '7.8', '-', '6.3', '-', '1.3', '20.7', '0.9', '6.3', '0.7', '-'], ['Denver Nuggets', '62', '42', '20', '240.8', '435.2', '15.0', '3.1', '5.3', '59.1', '1.1', '1.5', '72.5', '7.5', '-', '7.4', '-', '1.7', '22.3', '1.0', '6.4', '0.7', '-'], ['Indiana Pacers', '64', '41', '23', '240.4', '431.7', '15.3', '4.4', '7.2', '60.6', '1.4', '1.9', '74.2', '10.4', '-', '5.8', '-', '1.2', '20.9', '0.9', '6.0', '0.9', '-'], ['Cleveland Cavaliers', '64', '16', '48', '241.2', '407.3', '16.1', '2.3', '4.5', '51.6', '0.9', '1.1', '80.0', '5.6', '-', '10.0', '-', '1.2', '12.3', '0.5', '3.4', '0.4', '-'], ['Philadelphia 76ers', '63', '40', '23', '242.0', '446.9', '16.6', '2.5', '4.7', '52.7', '1.4', '1.7', '82.6', '6.6', '-', '9.6', '-', '1.8', '18.6', '0.7', '4.3', '0.7', '-'], ['Sacramento Kings', '62', '31', '31', '240.8', '425.2', '16.7', '3.2', '6.3', '50.3', '1.1', '1.6', '65.3', '7.5', '-', '8.0', '-', '1.5', '18.3', '1.0', '6.2', '0.7', '-'], ['Memphis Grizzlies', '65', '25', '40', '241.9', '452.1', '20.5', '3.4', '6.7', '51.3', '1.5', '1.9', '81.1', '8.6', '-', '11.2', '-', '1.6', '14.1', '0.8', '4.1', '0.8', '-']]
只获取团队:
teams = [a for a, *_ in final_data]
输出:
['Houston Rockets', 'Milwaukee Bucks', 'New York Knicks', 'Charlotte Hornets', 'Detroit Pistons', 'Washington Wizards', 'Atlanta Hawks', 'Brooklyn Nets', 'San Antonio Spurs', 'Boston Celtics', 'Toronto Raptors', 'Portland Trail Blazers', 'Utah Jazz', 'Minnesota Timberwolves', 'Chicago Bulls', 'LA Clippers', 'Miami Heat', 'New Orleans Pelicans', 'Phoenix Suns', 'Oklahoma City Thunder', 'Dallas Mavericks', 'Golden State Warriors', 'Orlando Magic', 'Los Angeles Lakers', 'Denver Nuggets', 'Indiana Pacers', 'Cleveland Cavaliers', 'Philadelphia 76ers', 'Sacramento Kings', 'Memphis Grizzlies']
要获得特定的统计信息,最简单的方法是通过将 header 值绑定(bind)到数据列表来创建字典列表:
data_attrs = [dict(zip(headers, i)) for i in final_data]
all_touches = [i['Touches'] for i in data_attrs]
关于python - 使用 python beautifulsoup 抓取 NBA 高级统计数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54994665/
https://jsfiddle.net/7jux5rLx/3/ ? 上面的完整代码 我正在尝试为 8 支球队制作随机 nba 选秀抽签(使用包含 8 个图像的数组),单击按钮后会显示第 8 顺位球队
我是网络抓取的新手,需要一些帮助。我想使用 Xpath 抓取 NBA 的首发阵容、球队和球员的位置。我只从名字开始,因为我遇到了一个问题。 到目前为止,这是我的代码: from urllib.requ
Epic商城喜加一:免费领取电脑游戏《NBA 2K21》 Epic商城今日可免费领取电脑游戏《NBA2K21》,本作将带给你NBA篮球与文化世界的沉浸式体验。 无论你是新玩家、老玩家还是回归玩家
我找到了 Greg Reda 关于从 nba.com 中抓取 HTML 的博文: http://www.gregreda.com/2015/02/15/web-scraping-finding-the
在此示例中,我希望使用 NBA API 收集特定数据,我试图从规范化字典中检索随机球员的全名和高度 from nba_api.stats.static import players from nba_
我在从 stats.nba 网站抓取数据时遇到了一些麻烦。我已经这样做了几次,所以不确定发生了什么变化,但想看看是否有其他人遇到同样的问题。 我通常只是像这样使用带有请求 url 的 jsonlite
我对使用 fetch() 有点陌生,并且在从 API 检索数据时遇到问题。 function getStats() { var url = "https://stats.nba.com/stats/l
我在 pandas 中创建一种非常特殊的 boolean 列时遇到了问题。我正在处理 NBA 数据,我想为球员何时获得三双创建一个专栏。此代码有效: james_harden['trip_dub']
我想用 rvest 抓取一张 NBA 球队统计数据表,我试过使用: 表格元素 library(rvest) url_nba % read_html %>% html_nodes('table') %>
这可能有点偏离主题,但由于解决方案是一般表达式问题,我认为在这里解决它可能会很有趣。 我正在尝试访问一个 URL,该 URL 包含我通常为分析而抓取的数据: http://stats.nba.com/
谁能帮我解析这个以在 Swift 4 中获取数据。我不确定如何使用 SwiftyJSON 解析这样的数据。 http://stats.nba.com/stats/leaguestandingsv3?L
我正在尝试解析篮球引用.com ( https://www.basketball-reference.com/leagues/NBA_1980.html ) 中的杂项统计表。但是,我想解析的表位于 h
我正在尝试解析来自 EPSN 的球员级别 NBA 得分数据。以下是我尝试的初始部分: import numpy as np import pandas as pd import requests fr
经过很长时间的努力,我找到了一种方法,以逗号分隔值的形式从 nba.com 获取数据 这是结果http://stats.nba.com/stats/leaguedashplayerstats?Date
我正在阅读 https://www.nba.com/history/awards/mvp .我尝试按降序打印出名称和计数。 Kareem Abdul-Jabbar: 6 Bill Russell: 5
我想从这个网页的表格中提取数据:http://stats.nba.com/league/team/#!/advanced/ .不幸的是,下面的代码没有给我任何东西,因为汤(见下文)不包含“td”,即使
我想抓取 NBA 高级统计数据。首先,我只想抓取团队的名称,但我遇到了一个问题,即它没有收集任何信息。我可能在 find_all 函数中寻找错误的东西。感谢您的帮助! import requests
我正在尝试在单场 NBA 比赛中制作球员和篮球运动的动画。在 NBA 中,比赛时钟从 12 分钟开始减少到 11:59 分钟、11:58、11:57 分钟等。因此,一次控球的数据集有一个从 718.8
我花了很长时间使用 R 来尝试抓取 NBA 数据,到目前为止我都是通过反复试验来完成的,但最后我发现了这个 documentation 。前段时间我在抓取 shotchartdetail 时遇到了一些
我正在尝试向 NBA 投篮图添加联合图, 所以它看起来像这样: 问题是我无法让这些条正常工作,我真的不知道为什么会这样。 如果有人指导我为了使用 NBA 图表我必须在联合图中更改什么,那就太好了。 N
我是一名优秀的程序员,十分优秀!