Web 抓取的数据返回空白

时间:2021-06-29 23:23:59

标签: python web-scraping beautifulsoup

我正在尝试从网站上抓取特定表格并获取该表格中的特定数据。我很确定我使用的代码应该可以工作,但它只返回 []。那只是为了找到那行数据,我还没有找到我想要的具体数据。

这是我的代码:

.getClassName()

如果您访问该网站,我想通过网络抓取的表格是“高级”统计数据表格并从中提取 USG%。我只想要 2021 赛季的 USG 数据。

此外,当我刚刚输入“soup”时,我会看到我想要的内容在那里,但是当我说 from bs4 import BeautifulSoup import requests headers = {'User Agent':'Mozilla/5.0'} url = 'https://www.sports-reference.com/cbb/players/cade-cunningham-1.html' res = requests.get(url) soup = BeautifulSoup(res.content, 'html.parser') advanced = soup.findAll('tr', id = 'players_advanced.2021') advanced 时,它只返回网站上第一个表的标题,即使有很多。我不知道这是为什么。

1 个答案:

答案 0 :(得分:1)

数据以 HTML 注释 (<!-- -->) 的形式存在于页面内。要解析它,您可以使用下一个示例:

import requests
from bs4 import BeautifulSoup, Comment


url = "https://www.sports-reference.com/cbb/players/cade-cunningham-1.html"
soup = BeautifulSoup(requests.get(url).content, "html.parser")

data = soup.find("h2", text="Advanced").find_next(
    text=lambda t: isinstance(t, Comment)
)
data = BeautifulSoup(str(data), "html.parser")

for tr in data.select("tbody tr"):
    row = [td.get_text(strip=True) for td in tr.select("td")]
    usgs = row[18]
    print(usgs)

打印:

29.1