首页 > 解决方案 > 如何在 div 标签下获取没有类的 li

问题描述

我正在尝试从 ESPN 获取游戏数据。为此,我需要在 div 标签下拉出一个列表项。我可以成功获取上/下数据,因为我很清楚标签是什么,但该行的列表项似乎没有明确的标签. 本质上,我想从这个特定的 URL 中提取“Line: IOWA -3.5”。

from bs4 import BeautifulSoup    
page = requests.get('https://www.espn.com/college- football/game/_/gameId/401012863')
soup = BeautifulSoup(page.text, 'html.parser')
#Get over/under
game_ou = soup.find('li',class_='ou')
game_ou2 = game_ou.contents[0]
game_ou3=game_ou2.strip()

#Get Line
game_line = soup.find('div',class_='odds-details')
print(game_line)

标签: pythonhtmlweb-scrapingbeautifulsoup

解决方案


find('li')在找到 div 元素后使用。

from bs4 import BeautifulSoup
page = requests.get('https://www.espn.com/college-football/game/_/gameId/401012863')
soup = BeautifulSoup(page.text, 'html.parser')
print(soup.find("div",class_="odds-details").find('li').text)
print(soup.find("div",class_="odds-details").find('li',class_='ou').text.strip())

输出:

Line: IOWA -3.5
Over/Under: 47

推荐阅读