example - Python, hermosa sopa, consigue todo el nombre de la clase
from bs4 import beautifulsoup (1)
Puede tratar cada instancia de Tag
encontrada como un diccionario cuando se trata de recuperar atributos. Tenga en cuenta que el valor del atributo de class
sería una lista, ya que la class
es un atributo especial de "valor múltiple" :
classes = []
for element in soup.find_all(class_=True):
classes.extend(element["class"])
O:
classes = [value
for element in soup.find_all(class_=True)
for value in element["class"]]
Manifestación:
In [1]: from bs4 import BeautifulSoup
In [2]: data = """
...: <div class="class1">
...: <span class="class2">some text</span>
...: <span class="class3">some text</span>
...: <span class="class4">some text</span>
...: </div>"""
In [3]: soup = BeautifulSoup(data, "html.parser")
In [4]: classes = [value
...: for element in soup.find_all(class_=True)
...: for value in element["class"]]
In [5]: print(classes)
[''class1'', ''class2'', ''class3'', ''class4'']
dado un código html digamos:
<div class="class1">
<span class="class2">some text</span>
<span class="class3">some text</span>
<span class="class4">some text</span>
</div>
¿Cómo puedo recuperar todos los nombres de clase? es decir: [''class1'', ''class2'', ''class3'', ''class4'']
Lo intenté:
soup.find_all(class_=True)
Pero recupera toda la etiqueta y luego necesito hacer algunas expresiones regulares en la cadena