首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用BeautifulSoup找不到深度嵌套标记ID

使用BeautifulSoup找不到深度嵌套标记ID
EN

Stack Overflow用户
提问于 2019-04-03 07:31:04
回答 1查看 36关注 0票数 0

我试图从2019.html中抓取NBA数据,但我遇到了BeautifulSoup抛出深度嵌套标记的问题。

我试着用soup.find(id='opponent-stats-per_game')来抓取“对手每个游戏统计”表。然而,我得到了None的结果。如果我试图找一个在树上更高的div,那么它会剪辑更深的孩子。

有人能给我一些指导吗?我对使用BeautifulSoup进行网络抓取相当陌生。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-04-03 10:36:02

reference.com站点部分是动态的。很久以前,我也有过同样的问题,当时我正试图找出足球参考网。

有几种方法可以处理。一种是首先使用Selenium来呈现页面,然后您可以进入并抓取表。现在您仍然可以使用BeautifulSoup来获取它,但是每当我看到<table>标记时,我的第一次尝试就是使用熊猫和.read_html(),因为这将为您在桌面上完成大部分工作。

这将返回数据格式的列表。然后只需要找出您想要的数据,然后可能对列名进行一些操作--而不是以您需要的方式得到它。

为此,您的对手在每张牌桌上的统计值处于指数第19位:

代码语言:javascript
复制
from bs4 import BeautifulSoup
from selenium import webdriver
import pandas as pd

driver = webdriver.Chrome('C:/chromedriver_win32/chromedriver.exe')
page_url = 'https://www.basketball-reference.com/leagues/NBA_2019.html'
driver.get(page_url)

tables = pd.read_html(driver.page_source)
opp_per_gm_df = tables[19]

driver.quit()

输出:

代码语言:javascript
复制
print (opp_per_gm_df)
      Rk                     Team   G     MP    FG  ...  STL  BLK   TOV    PF    PTS
0    1.0        Memphis Grizzlies  77  242.3  37.2  ...  7.7  4.9  15.5  21.7  105.6
1    2.0               Miami Heat  77  240.3  38.2  ...  7.4  4.8  14.2  20.3  105.6
2    3.0          Indiana Pacers*  78  240.3  38.7  ...  7.5  5.2  15.6  20.1  104.3
3    4.0               Utah Jazz*  77  240.6  39.7  ...  8.6  4.7  13.9  22.2  106.1
4    5.0          Denver Nuggets*  77  240.6  39.6  ...  7.5  5.0  13.5  20.5  106.9
5    6.0          Detroit Pistons  77  242.3  40.0  ...  6.9  5.2  14.1  21.5  107.5
6    7.0            Orlando Magic  78  241.3  39.9  ...  6.9  4.4  13.0  18.8  106.5
7    8.0          Boston Celtics*  78  241.3  39.5  ...  6.8  3.8  15.2  19.6  108.0
8    9.0         Toronto Raptors*  78  242.2  40.2  ...  7.7  4.5  15.1  20.6  108.4
9   10.0         Dallas Mavericks  77  241.0  40.9  ...  7.9  4.6  13.1  23.4  109.9
10  11.0         Milwaukee Bucks*  78  241.3  40.3  ...  6.9  4.9  13.4  20.0  108.6
11  12.0  Portland Trail Blazers*  77  242.3  41.1  ...  7.3  5.1  12.4  20.8  110.5
12  13.0         Houston Rockets*  78  241.9  40.4  ...  7.4  4.6  15.0  20.1  109.3
13  14.0   Golden State Warriors*  77  241.6  40.3  ...  7.6  3.7  13.5  19.8  111.4
14  15.0       San Antonio Spurs*  78  241.6  41.6  ...  7.2  4.1  12.2  19.7  110.4
15  16.0      Philadelphia 76ers*  77  241.6  41.5  ...  7.9  4.0  12.9  22.3  112.2
16  17.0        Charlotte Hornets  77  241.9  42.0  ...  7.1  6.1  13.6  20.6  112.2
17  18.0   Oklahoma City Thunder*  78  242.2  40.8  ...  8.2  5.1  16.9  22.6  110.8
18  19.0            Brooklyn Nets  78  243.8  42.2  ...  7.8  5.4  13.5  22.3  112.5
19  20.0   Minnesota Timberwolves  77  241.9  42.0  ...  6.6  5.6  14.7  22.0  114.0
20  21.0          New York Knicks  77  241.3  42.0  ...  7.4  5.7  13.4  21.0  114.1
21  22.0            Chicago Bulls  78  242.9  42.1  ...  7.5  5.6  13.5  18.9  113.4
22  23.0    Los Angeles Clippers*  78  241.6  41.4  ...  8.2  5.9  13.1  24.0  113.4
23  24.0       Los Angeles Lakers  78  241.3  42.1  ...  8.3  5.1  14.3  21.0  113.7
24  25.0      Cleveland Cavaliers  78  241.0  43.0  ...  6.9  5.6  12.5  19.6  113.9
25  26.0         Sacramento Kings  78  240.6  41.9  ...  7.7  5.1  15.9  21.6  114.9
26  27.0             Phoenix Suns  78  242.2  42.2  ...  9.1  5.0  15.6  20.7  116.3
27  28.0     New Orleans Pelicans  78  240.6  43.2  ...  8.4  5.4  13.8  21.3  116.5
28  29.0       Washington Wizards  78  243.2  43.3  ...  7.8  4.6  15.9  21.4  116.9
29  30.0            Atlanta Hawks  78  242.2  42.6  ...  9.9  5.4  15.1  22.0  118.8
30   NaN           League Average  78  241.7  41.0  ...  7.7  5.0  14.2  21.0  111.1

[31 rows x 25 columns]
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/55489434

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档