Python новичок снова! Я получил большую помощь по этому вопросу, но теперь я в тупике. Приведенный ниже код соскребает данные футбольного матча и результаты футбольного веб-сайта университета Лихай. Я пытаюсь разбить формат оценки ['T', '0-0 (2 OT)'] на 3 столбца 'T', '0-0,' 2 OT, но у меня возникают проблемы. Проблема заключается в этой части кода:
=> для результата в soup.findAll ("div", {'class': 'sidearm-schedule-game-result'}): => result = result.get_text (strip = True) .split (',')
Я пробовал .split (','), но это не сработало, так как он создавал ['T', '0-0 (2 OT) ) ']. Есть ли способ разбить, чем на 3 столбца 1) Т, 2) 0-0 и 3) 2 ОТ ???
Вся помощь очень ценится. Спасибо
import requests
from bs4 import BeautifulSoup
import pandas as pd
from itertools import zip_longest
d = []
n = []
res = []
op = []
yr = []
with requests.Session() as req:
for year in range(2003, 2020):
print(f"Extracting Year# {year}")
r = req.get(
f"https://lehighsports.com/sports/mens-soccer/schedule/{year}")
if r.status_code == 200:
soup = BeautifulSoup(r.text, 'html.parser')
for date in soup.findAll("div", {'class': 'sidearm-schedule-game-opponent-date flex-item-1'}):
d.append(date.get_text(strip=True, separator=" "))
for name in soup.findAll("div", {'class': 'sidearm-schedule-game-opponent-name'}):
n.append(name.get_text(strip=True))
for result in soup.findAll("div", {'class': 'sidearm-schedule-game-result'}):
result = result.get_text(strip=True)
#result = result.get_text(strip=True).split(',')
res.append(result)
if len(d) != len(res):
res.append("None")
for opp in soup.findAll("div", {'class': 'sidearm-schedule-game-opponent-text'}):
op.append(opp.get_text(strip=True, separator=' '))
yr.append(year)
data = []
for items in zip_longest(yr, d, n, op, res):
data.append(items)
df = pd.DataFrame(data, columns=['Year', 'Date', 'Name', 'opponent', 'Result']).to_excel('lehigh.xlsx', index=False)