Użyj predykatów do wybierania węzłów na podstawie ich elementów potomnych
Poniżej znajdziesz prawie taki sam kod HTML jak poprzednio. Różnica polega na tym, że trzeci element div ma element potomny p z klasą 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>
W XPATH można zrobić coś, czego nie umożliwiają selektory CSS: wybrać elementy na podstawie właściwości ich potomków. Służą do tego predykaty. Twoim celem jest wybranie wyłącznie elementów div, które zawierają element p z klasą third. W tym celu musisz wybrać tylko ten element div, który spełnia określony predykat — czyli posiada odpowiedniego potomka (niekoniecznie bezpośredniego). Zrobisz to krok po kroku.
Powyższy kod HTML jest dostępny jako weather_html.
To ćwiczenie jest częścią kursu
Web Scraping w R
Interaktywne ćwiczenie praktyczne
Spróbuj tego ćwiczenia, uzupełniając ten przykładowy kod.
# Select all divs
weather_html %>%
___(xpath = ___)