Estrai nodi in base al numero dei loro figli
Come mostrato nel video, la funzione XPATH count() può essere usata all'interno di un predicato per restringere la selezione ai nodi che corrispondono a un certo numero di figli. Questo è particolarmente utile se il tuo scraper dipende dal fatto che alcuni nodi abbiano un numero minimo di figli.
Ecco un estratto da una pagina (senza alcuna classe o ID…) che potresti voler analizzare:
...
<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>
...
Ti interessano solo i div che hanno esattamente un'intestazione h2 e almeno due paragrafi, perché la tua applicazione non gestisce bene previsioni meteo incomplete.
L'HTML qui sopra è disponibile tramite forecast_html.
Questo esercizio fa parte del corso
Web scraping in R
Istruzioni dell'esercizio
- Seleziona i
divdesiderati con l'apposito selettore XPATH, utilizzando la funzionecount().
Esercizio pratico interattivo
Prova a risolvere questo esercizio completando il codice di esempio.
# Select only divs with one header and at least two paragraphs
forecast_html %>%
html_elements(xpath = '___')