ComenzarEmpieza gratis

Usa predicados para seleccionar nodos según sus hijos

Aquí tienes un HTML casi igual al anterior. Además, el tercer div tiene un hijo p con clase third.

<html>
  <body>
    <div id = 'first'>
      <h1 class = 'big'>Berlin Weather Station</h1>
      <p class = 'first'>Temperature: 20°C</p>
      <p class = 'second'>Humidity: 45%</p>
    </div>
    <div id = 'second'>...</div>
    <div id = 'third'>
      <p class = 'first'>Sunshine: 5hrs</p>
      <p class = 'second'>Precipitation: 0mm</p>
      <p class = 'third'>Snowfall: 0mm</p>
    </div>
  </body>
</html>

Con XPATH, se puede hacer algo que no es posible con CSS: seleccionar elementos en función de las propiedades de sus descendientes. Para ello, se pueden usar predicados. Aquí, tu objetivo final es seleccionar solo los elementos div que contienen un elemento p con la clase third. Para eso, tendrás que seleccionar solo el div que cumpla un cierto predicado — tener el descendiente correspondiente (no hace falta que sea un hijo directo). Lo harás paso a paso.

De nuevo, el HTML de arriba está disponible como weather_html.

Este ejercicio forma parte del curso

Web Scraping con R

Ver curso

Ejercicio interactivo práctico

Prueba este ejercicio y completa el código de muestra.

# Select all divs
weather_html %>% 
  ___(xpath = ___)
Editar y ejecutar código