Extrae nodos según el número de sus hijos
Como viste en el vídeo, la función count() de XPATH se puede usar dentro de un predicado para limitar la selección a los nodos que cumplan un número determinado de hijos. Esto es especialmente útil si tu scraper depende de que algunos nodos tengan una cantidad mínima de hijos.
Aquí tienes un fragmento de una página (sin clases ni IDs…) que podrías estar raspando:
...
<div>
<h1>Tomorrow</h1>
</div>
<div>
<h2>Berlin</h2>
<p>Temperature: 20°C</p>
<p>Humidity: 50%</p>
</div>
<div>
<h2>London</h2>
<p>Temperature: 15°C</p>
</div>
<div>
<h2>Zurich</h2>
<p>Temperature: 22°C</p>
<p>Humidity: 60%</p>
</div>
...
Solo te interesan los div que tengan exactamente un encabezado h2 y al menos dos párrafos, porque tu aplicación no maneja bien pronósticos del tiempo incompletos.
El HTML anterior está disponible en forecast_html.
Este ejercicio forma parte del curso
Web Scraping con R
Instrucciones del ejercicio
- Selecciona los
divdeseados con el selector XPATH adecuado, usando la funcióncount().
Ejercicio interactivo práctico
Prueba este ejercicio y completa el código de muestra.
# Select only divs with one header and at least two paragraphs
forecast_html %>%
html_elements(xpath = '___')