Wyodrębnianie węzłów na podstawie liczby ich potomków
Jak pokazano w filmie, funkcja XPATH count() może być używana w predykacie, aby zawęzić wybór do węzłów spełniających określony warunek dotyczący liczby potomków. Jest to szczególnie przydatne, gdy skrobak zależy od tego, czy dane węzły mają minimalną liczbę dzieci.
Oto fragment strony (bez żadnych klas ani identyfikatorów…), którą możesz scrapować:
...
<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>
...
Interesują cię tylko te divy, które mają dokładnie jeden nagłówek h2 i co najmniej dwa akapity – twoja aplikacja nie radzi sobie bowiem z niekompletnymi prognozami pogody.
Powyższy kod HTML jest dostępny jako forecast_html.
To ćwiczenie jest częścią kursu
Web Scraping w R
Instrukcje do ćwiczenia
- Wybierz odpowiednie
divy za pomocą właściwego selektora XPATH, korzystając z funkcjicount().
Interaktywne ćwiczenie praktyczne
Spróbuj tego ćwiczenia, uzupełniając ten przykładowy kod.
# Select only divs with one header and at least two paragraphs
forecast_html %>%
html_elements(xpath = '___')