Python Beautiful Soup 4 очищает таблицу рейтинга IPL от Cricinfo

Я учусь очищать веб-сайты с помощью модуля Beautiful Soup 4. Я пытаюсь очистить таблицу лиги по крикету и до сих пор использовал следующий код.

#We want to scrape the cricinfo website for the league table
import requests
from bs4 import BeautifulSoup as bs

r = requests.get("https://www.espncricinfo.com/table/series/8048/season/2020/indian-premier-league")
soup = bs(r.content)
headers = soup.find_all('h5')
print(headers)

Это результат, который я получаю после запуска кода

[<h5 class="header-title label ">Indian Premier League 2020</h5>,
 <h5 class="header-title label ">Mumbai Indians</h5>,
 <h5 class="header-title label ">Royal Challengers Bangalore</h5>,
 <h5 class="header-title label ">Delhi Capitals</h5>,
 <h5 class="header-title label ">Sunrisers Hyderabad</h5>,
 <h5 class="header-title label ">Kings XI Punjab</h5>,
 <h5 class="header-title label ">Rajasthan Royals</h5>,
 <h5 class="header-title label ">Kolkata Knight Riders</h5>,
 <h5 class="header-title label ">Chennai Super Kings</h5>,
 <h5 class="gray600">Standings are updated with the completion of each game</h5>]

Что я хотел бы сделать сейчас, так это очистить это еще больше и получить список, содержащий названия команд, и избавиться от верхней и нижней строки

Например, я бы хотел, чтобы окончательный список был примерно таким

teams = ['Mumbai Indians', 'Royal Challengers Bangalore', 'Delhi Capitals', 'Sunrisers Hyderabad'. 'Kings XI Punjab', 'Rajasthan Royals', 'Kolkata Knight Riders', 'Chennai Super Kings']

Любая помощь будет принята с благодарностью, спасибо

1 ответ

Решение

Вы можете использовать .stringчтобы получить текстовое содержимое HTML-элементов. Попробуй это:

teams = [header.string for header in headers]
Другие вопросы по тегам