Usando BeautifulSoup para extraer parte del nombre de la clase.
Como los nombres de clase están cambiando para cada elemento, me gustaría extraer la información basada en parte del nombre de la clase (carrier-text en el ejemplo). Sin embargo, no funciona…
“` python
html = “”
Alaska Airlines 398
“””
soup = BeautifulSoup(html, ‘html.parser’)
text = soup.find(‘div’,class_=”carrier-text”).text
print(text)
davy.ai
El código anterior debería extraer el texto “Alaska Airlines 398” del elemento div que tiene un nombre de clase que contiene “carrier-text”. Sin embargo, no funciona porque el nombre de clase en el código HTML es “dErF-carrier-text” y no solo “carrier-text”.
Para extraer la información basada en una parte del nombre de la clase, puede utilizar el módulo
re
en Python para buscar un patrón en el nombre de la clase. Aquí está un ejemplo de código:En este código, primero importamos el módulo
re
y creamos un patrón de expresión regular que coincida con cualquier nombre de clase que contenga la cadena “carrier-text”.Luego, pasamos este patrón al argumento
class_
de la funciónsoup.find ()
para encontrar el elemento div con un nombre de clase coincidente. También usamos el método`strip () para eliminar cualquier espacio en blanco que pueda encontrar en el texto extraído.Finalmente, imprimimos el texto extraído, que ahora debería ser “Alaska Airlines 398”.