Utiliser des prédicats pour sélectionner des nœuds en fonction de leurs enfants
Voici un HTML presque identique à celui d'avant. En plus, le troisième div contient un enfant p avec la 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>
Avec XPATH, on peut faire quelque chose d'impossible avec CSS : sélectionner des éléments selon les propriétés de leurs descendants. Pour cela, on peut utiliser des prédicats. Ici, votre objectif final est de sélectionner uniquement les éléments div qui renferment un élément p avec la classe third. Pour y arriver, vous devez ne retenir que les div qui respectent un certain prédicat — avoir le descendant correspondant (il n'a pas besoin d'être un enfant direct). Vous procéderez étape par étape.
De nouveau, le HTML ci-dessus est disponible sous le nom weather_html.
Cette activité fait partie du cours
Extraction de données Web en R
Exercice interactif pratique
Essayez cet exercice en complétant ce code d’exemple.
# Select all divs
weather_html %>%
___(xpath = ___)