<p>您可以找到带有游戏信息的卡,并在底部找到天气数据(如果有):</p>
<pre><code>from bs4 import BeautifulSoup as soup
import requests, re, pandas as pd
d = soup(requests.get('https://www.rotowire.com/baseball/daily-lineups.php').text, 'html.parser')
r = [{'header':' vs '.join(k.get_text(strip=True) for k in i.select('div.lineup__teams div.lineup__team')),
'rain':(j:=i.select_one('.lineup__bottom .lineup__weather .lineup__weather-text')).contents[1].text,
'temperature':x[0] if (x:=re.findall('^\d+', j.contents[2].strip())) else 'In Domed Stadium',
'wind':x[0] if (x:=re.findall('(?<=Wind\s)[\w\W]+', j.contents[2].strip())) else 'In Domed Stadium'
}
for i in d.select('div.lineup.is-mlb div.lineup__box') if 'is-tools' not in i.parent['class']]
df = pd.DataFrame(r)
print(df)
</code></pre>
<p>输出:</p>
<pre><code> header rain temperature wind
0 PHI vs CIN 100% Rain 66 8 mph In
1 CWS vs CLE 0% Rain 64 4 mph L-R
2 SD vs CHC 0% Rain 69 7 mph In
3 NYM vs ARI Dome In Domed Stadium In Domed Stadium
4 MIN vs BAL 0% Rain 75 9 mph Out
5 TB vs NYY 0% Rain 68 9 mph R-L
6 MIA vs TOR 0% Rain 81 6 mph L-R
7 WAS vs ATL 0% Rain 81 4 mph R-L
8 BOS vs HOU Dome In Domed Stadium In Domed Stadium
9 TEX vs COL 0% Rain 76 6 mph
10 STL vs LAD 0% Rain 73 4 mph Out
11 OAK vs SEA Dome In Domed Stadium In Domed Stadium
</code></pre>