【发布时间】:2021-09-25 13:20:42
【问题描述】:
我试图找出比赛何时被推迟并获取相关的球队信息或比赛号码,因为我将球队缩写附加到列表中。目前发生的情况是,它只获取延期的项目,而跳过没有延期的比赛。我想我需要更改 soup.select 行,或者做一些稍微不同的事情,但无法弄清楚。
代码没有抛出任何错误,但返回的列表是 [0,1,2,3]。但是,如果您打开 https://www.rotowire.com/baseball/daily-lineups.php,它应该返回 [0,1,14,15],因为这些是延迟比赛的团队元素。
from bs4 import BeautifulSoup
import requests
url = 'https://www.rotowire.com/baseball/daily-lineups.php'
r = requests.get(url)
soup = BeautifulSoup(r.text, "html.parser")
x = 0
gamesRemoved = []
for tag in soup.select(".lineup__main > div"):
ppcheck = tag.text
if "POSTPONED" in ppcheck:
print(x)
print('Postponement')
first_team = x*2
print(first_team)
gamesRemoved.append(first_team)
second_team = x*2+1
gamesRemoved.append(second_team)
x+=1
else:
x+=1
continue
print(gamesRemoved)
【问题讨论】:
-
我不明白 - 当我点击您的链接时,我只看到两个带有“POSTPONED”的红色框。您想获取什么信息?
-
感谢您查看我的问题。这是一个更大项目的一部分,但我试图最小化以使人们更容易复制。我基本上刮掉了每支球队和他们的阵容。例如,它抓取 ['MIN', 'DET', 'MIA', 'PHI', 'BOS', 'NYY', 'SD', 'WAS']....我需要它返回元素 0 和1 因为第一场 MIN vs DET 比赛被推迟。然后,我需要它返回 14 和 15,因为第二场 MIN vs DET 比赛也被推迟了。然后,这将允许我从我拥有的另一个列表中删除 MIN 和 DET。我希望这是有道理的 - 我正在尽我所能简化它。
-
那么在这种情况下我认为Ajax的答案已经可以了:)
标签: python web-scraping beautifulsoup parent-child