Вы можете извлечь первый <h2 class="cintillo">
элемент из equipo
следующим образом:
h2 = str(equipo.find('h2', {'class':'cintillo'}))
Если вы хотите только внутренний HTML (без каких-либо тегов), используйте:
h2 = equipo.find('h2', {'class':'cintillo'}).text
И вы можете извлечь все элементы <span class="dorsal-jugador">
из equipo
следующим образом:
jugadores = equipo.find_all('span', {'class':'dorsal-jugador'})
Затем добавьте h2
и jugadores
к многомерному списку.
Полный код:
from bs4 import BeautifulSoup
import requests
page = requests.get("https://www.marca.com/futbol/primera/equipos.html")
soup = BeautifulSoup(page.content, 'html.parser')
equipos = soup.findAll('li', attrs={'id':'nombreEquipo'})
aux = []
for equipo in equipos:
h2 = equipo.find('h2', {'class':'cintillo'}).text
jugadores = equipo.find_all('span', {'class':'dorsal-jugador'})
aux.append([h2,[j.text for j in jugadores]])
# format list for printing
print('\n\n'.join(['--'+i[0]+'--\n' + '\n'.join(i[1]) for i in aux]))
Пример вывода:
--Alavés--
Fernando Pacheco
Antonio Sivera
Álex Domínguez
Carlos Vigaray
...
Демо: https://repl.it/@glhr/55550385