IniziaInizia gratis

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

Visualizza il corso

Esercizio pratico interattivo

Prova a risolvere questo esercizio completando il codice di esempio.

# Select all divs
weather_html %>% 
  ___(xpath = ___)
Modifica ed esegui il codice