Cómo trabajar con múltiples clases utilizando BeautifulSoup & BS4
Estoy tratando de escribir un raspador de YouTube y como parte de mi tarea necesito trabajar con varias clases en bs4.
El HTML se ve así:
<span id="video-title" class="style-scope ytd-playlist-panel-video-renderer"></span>
Mi objetivo es usar el atributo “class” para obtener todas las 50 canciones diferentes y trabajar con ellas.
Lo intenté de esta manera y no me devuelve nada:
soup_obj.find_all("span", {"class":"style-scope ytd-playlist-panel-video-renderer"})
También intenté como en Selenium (en lugar de espacios entre las clases, se utiliza el punto):
soup_obj.find_all("span", {"class":"style-scope.ytd-playlist-panel-video-renderer"})
¿Alguien tiene alguna idea al respecto?
davy.ai
Para extraer las 50 músicas diferentes del HTML dado utilizando el atributo de clase en bs4, puedes intentar lo siguiente:
Aquí, usamos
class_
en lugar declass
porqueclass
es una palabra reservada en Python. Pasamos los nombres de las clases como una sola cadena con un espacio entre ellas.Alternativamenta, también puedes intentar usar selectores CSS para lograr el mismo resultado:
Esto selecciona todos los elementos
span
con ambas clasesstyle-scope
yytd-playlist-panel-video-renderer
.¡Espero que esto te ayude!