Вы сделали все правильно, но вам нужно что-то сделать с тем, что вы получили, и find_all
вернет набор результатов, вы не можете сделать, как premier_soup_tr.find_all
, правильный путь - premier_soup_tr[position].find_all
Вот что я сделал.
import requests
from bs4 import BeautifulSoup
url = 'https://www.skysports.com/premier-league-table'
premier_r = requests.get(url)
print(premier_r.status_code)
premier_soup = BeautifulSoup(premier_r.text, 'html.parser')
premier_soup_tr = premier_soup.find_all('tr', {'class': 'standing-table__row'})
result = [[r.text.strip() for r in td.find_all('td', {'class': 'standing-table__cell'})][:-1] for td in premier_soup_tr[1:]]
print(result)
Вывод:
[['1', 'Manchester City', '9', '7', '2', '0', '26', '3', '23', '23'], ['2', 'Liverpool', '9', '7', '2', '0', '16', '3', '13', '23'], ['3', 'Chelsea', '9', '6', '3', '0', '20', '7', '13', '21'], ['4', 'Arsenal', '9', '7', '0', '2', '22', '11', '11', '21'], ['5', 'Tottenham Hotspur', '9', '7', '0', '2', '16', '7', '9', '21'], ['6', 'Bournemouth', '9', '5', '2', '2', '16', '12', '4', '17'],