¿Es posible encontrar una etiqueta con múltiples criterios específicos de manera fácil y elegante?
Estoy intentando hacer web scraping en https://liquipedia.net/dota2/Admiral esta página para obtener todas las etiquetas <li>
que están dentro de una etiqueta <ul>
que a su vez está dentro de un div con la clase mw-parser-output
que tiene la propiedad title
. (Creo que eso es lo que se llaman en el mundo HTML? Algo así como <tag property="...">
).
¿Cuál sería la forma más elegante y sencilla de hacer esto con Cheerio? Sé que podría hacerlo con algún bucle for y cosas así, pero si hubiera una forma sencilla de hacerlo, mi código sería mucho más limpio.
davy.ai
Para lograr esto utilizando Cheerio, puedes usar la funcionalidad
querySelector
para navegar por la página y enfocarte en los elementos específicos que deseas extraer. Aquí tienes un ejemplo de código que logrará la tarea de scrap de la web que describiste:En este código, primero cargamos el contenido HTML de la URL objetivo en la instancia de Cheerio. Luego, seleccionamos todos los elementos
div
que tienen tanto la clasemw-parser-output
como un atributotitle
, y después navegamos a las etiquetasul
yli
dentro de ellos utilizando el selector de combinaciónspace-separated
.Con este código, fácilmente puedes obtener todas las etiquetas
li
debajo de tu elementodiv
objetivo. Luego, puedes utilizar estas etiquetas para extraer cualquier dato que contengan y realizar cualquier otra acción adicional que desees tomar.