Usa i predicati per selezionare nodi in base ai loro figli
Ecco un HTML quasi uguale al precedente. In più, il terzo div ha un figlio p con classe 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 puoi fare qualcosa che con i CSS non è possibile: selezionare elementi in base alle proprietà dei loro discendenti. Per questo si usano i predicati. Qui, il tuo obiettivo finale è selezionare solo gli elementi div che contengono un elemento p con classe third. Per riuscirci, devi selezionare solo il div che soddisfa un certo predicato — cioè che ha il relativo discendente (non deve essere un figlio diretto). Lo farai passo dopo passo.
Anche qui, l'HTML qui sopra è disponibile come weather_html.
Questo esercizio fa parte del corso
Web scraping in R
Esercizio pratico interattivo
Prova a risolvere questo esercizio completando il codice di esempio.
# Select all divs
weather_html %>%
___(xpath = ___)