Extraire des nœuds en fonction du nombre de leurs enfants
Comme montré dans la vidéo, la fonction XPATH count() peut être utilisée dans un prédicat pour restreindre une sélection aux nœuds qui correspondent à un certain nombre d’enfants. C’est particulièrement utile si votre scraper dépend du fait que certains nœuds aient un nombre minimal d’enfants.
Voici un extrait d’une page (sans aucune classe ni ID…) que vous pourriez être en train d’extraire :
...
<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>
...
Vous ne vous intéressez qu’aux div qui ont exactement un en-tête h2 et au moins deux paragraphes, car votre application gère mal les prévisions météo incomplètes.
Le code HTML ci-dessus est accessible via forecast_html.
Cet exercice fait partie du cours
Web scraping en R
Instructions
- Sélectionnez les
divsouhaités avec le sélecteur XPATH approprié, en utilisant la fonctioncount().
Exercice interactif pratique
Essayez cet exercice en complétant cet exemple de code.
# Select only divs with one header and at least two paragraphs
forecast_html %>%
html_elements(xpath = '___')