CommencezCommencez gratuitement

Extraire des nœuds selon le 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 robot d'extraction 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 vouloir récupérer :

...
<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 vous est fourni dans forecast_html.

Cette activité fait partie du cours

Extraction de données Web en R

Voir le cours

Instructions de l’exercice

  • Sélectionnez les div voulus avec le sélecteur XPATH approprié en utilisant la fonction count().

Exercice interactif pratique

Essayez cet exercice en complétant ce code d’exemple.

# Select only divs with one header and at least two paragraphs
forecast_html %>%
	html_elements(xpath = '___')
Modifier et exécuter le code