CommencerCommencer gratuitement

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

Afficher le cours

Instructions

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

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 = '___')
Modifier et exécuter le code