Я хотел бы очистить веб-страницы от всех данных: "https://www.tennisexplorer.com/results/ ... =12&day=01"
Но мой текущий код, похоже, не позволяет правильно отображать столбцы. (то, что началось с моего кода, теперь было объединено с Chatgpt, чтобы попытаться исправить ошибки, и теперь это полный беспорядок)
url = "https://www.tennisexplorer.com/results/ ... =12&day=01"
headers = {"User-Agent": "Mozilla/5.0"}
soup = BeautifulSoup(requests.get(url, headers=headers).text, "html.parser")
rows = soup.select("table.result tr.one, table.result tr.two")
matches = []
for i in range(0, len(rows), 2):
wcols = rows.find_all("td")
lcols = rows[i+1].find_all("td")
# --- TIME ---
time = wcols[0].get_text(strip=True)
# --- PLAYER NAMES ---
winner = wcols[1].get_text(strip=True)
loser = lcols[1].get_text(strip=True)
# --- SET SCORES ---
set_scores = []
for s in range(3, 8): # S1 → S5
if s >= len(wcols) or s >= len(lcols):
break
ws = wcols.get_text(strip=True)
ls = lcols.get_text(strip=True)
if not ws or not ls:
break
set_scores.append(f"{ws}-{ls}")
if not set_scores:
continue
# --- SETS WON (derived, reliable) ---
winner_sets = 0
loser_sets = 0
for s in set_scores:
w, l = map(int, s.split("-"))
if w > l:
winner_sets += 1
else:
loser_sets += 1
# --- ODDS (ONLY from winner row) ---
winner_odds = wcols[8].get_text(strip=True) if len(wcols) > 8 else None
loser_odds = wcols[9].get_text(strip=True) if len(wcols) > 9 else None
matches.append({
"date": "2025-12-01",
"time": time,
"winner": winner,
"loser": loser,
"winner_sets": winner_sets,
"loser_sets": loser_sets,
"set_scores": set_scores,
"winner_odds": winner_odds,
"loser_odds": loser_odds
})
Подробнее здесь: https://stackoverflow.com/questions/798 ... ennis-data
Веб-скрапинг теннисных данных [закрыто] ⇐ Python
Программы на Python
1768227574
Anonymous
Я хотел бы очистить веб-страницы от всех данных: "https://www.tennisexplorer.com/results/?year=2025&month=12&day=01"
Но мой текущий код, похоже, не позволяет правильно отображать столбцы. (то, что началось с моего кода, теперь было объединено с Chatgpt, чтобы попытаться исправить ошибки, и теперь это полный беспорядок)
url = "https://www.tennisexplorer.com/results/?year=2025&month=12&day=01"
headers = {"User-Agent": "Mozilla/5.0"}
soup = BeautifulSoup(requests.get(url, headers=headers).text, "html.parser")
rows = soup.select("table.result tr.one, table.result tr.two")
matches = []
for i in range(0, len(rows), 2):
wcols = rows[i].find_all("td")
lcols = rows[i+1].find_all("td")
# --- TIME ---
time = wcols[0].get_text(strip=True)
# --- PLAYER NAMES ---
winner = wcols[1].get_text(strip=True)
loser = lcols[1].get_text(strip=True)
# --- SET SCORES ---
set_scores = []
for s in range(3, 8): # S1 → S5
if s >= len(wcols) or s >= len(lcols):
break
ws = wcols[s].get_text(strip=True)
ls = lcols[s].get_text(strip=True)
if not ws or not ls:
break
set_scores.append(f"{ws}-{ls}")
if not set_scores:
continue
# --- SETS WON (derived, reliable) ---
winner_sets = 0
loser_sets = 0
for s in set_scores:
w, l = map(int, s.split("-"))
if w > l:
winner_sets += 1
else:
loser_sets += 1
# --- ODDS (ONLY from winner row) ---
winner_odds = wcols[8].get_text(strip=True) if len(wcols) > 8 else None
loser_odds = wcols[9].get_text(strip=True) if len(wcols) > 9 else None
matches.append({
"date": "2025-12-01",
"time": time,
"winner": winner,
"loser": loser,
"winner_sets": winner_sets,
"loser_sets": loser_sets,
"set_scores": set_scores,
"winner_odds": winner_odds,
"loser_odds": loser_odds
})
Подробнее здесь: [url]https://stackoverflow.com/questions/79866031/webscraping-tennis-data[/url]
Ответить
1 сообщение
• Страница 1 из 1
Перейти
- Кемерово-IT
- ↳ Javascript
- ↳ C#
- ↳ JAVA
- ↳ Elasticsearch aggregation
- ↳ Python
- ↳ Php
- ↳ Android
- ↳ Html
- ↳ Jquery
- ↳ C++
- ↳ IOS
- ↳ CSS
- ↳ Excel
- ↳ Linux
- ↳ Apache
- ↳ MySql
- Детский мир
- Для души
- ↳ Музыкальные инструменты даром
- ↳ Печатная продукция даром
- Внешняя красота и здоровье
- ↳ Одежда и обувь для взрослых даром
- ↳ Товары для здоровья
- ↳ Физкультура и спорт
- Техника - даром!
- ↳ Автомобилистам
- ↳ Компьютерная техника
- ↳ Плиты: газовые и электрические
- ↳ Холодильники
- ↳ Стиральные машины
- ↳ Телевизоры
- ↳ Телефоны, смартфоны, плашеты
- ↳ Швейные машинки
- ↳ Прочая электроника и техника
- ↳ Фототехника
- Ремонт и интерьер
- ↳ Стройматериалы, инструмент
- ↳ Мебель и предметы интерьера даром
- ↳ Cантехника
- Другие темы
- ↳ Разное даром
- ↳ Давай меняться!
- ↳ Отдам\возьму за копеечку
- ↳ Работа и подработка в Кемерове
- ↳ Давай с тобой поговорим...
Мобильная версия