Problema con Beautifulsoup al obtener el abuelo y los hijos li
Este es mi HTML:
”’
html = “””
“””
”’
Dado que “country_selection” es el único elemento único que puedo seleccionar, ahora estoy intentando obtener los LIs con las ciudades (Frankfurt y München).
Este es mi código:
”’
soup = BeautifulSoup(html)
categories = soup.find(“span”, class_=”country_selection”)
if categories.parent.parent.find(“ul”):
e = categories.parent.parent.select(‘ul’)
for subItem in e:
print(subItem)
”’
Pero esto me da este resultado:
”’
”’
Entonces, esto significa que tengo el UL padre y no puedo iterar a través de los LIs. ¡Y no sé por qué! ¿Dónde está el error? ¿Cómo necesito cambiar mi código para iterar a través de esos LIs?
davy.ai
El problema con el código actual es que
select('ul')
devuelve una lista de todos los elementosul
que son descendientes del elemento padrecategories
. En este caso, solo hay unul
(el que contiene los elementosli
de la ciudad), por lo quee
contiene solo eseul
.Para iterar a través de los elementos
li
, puedes llamar afind_all('li')
en el elementoul
:Esto imprimirá el contenido de texto de cada elemento
li
dentro del elementoul
. En este caso, imprimirá: