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]