Nodes extraheren op basis van het aantal kinderen
Zoals in de video te zien is, kun je de XPATH-functie count() binnen een predicaat gebruiken om een selectie te beperken tot de nodes die een bepaald aantal kinderen hebben. Dit is vooral handig als je scraper ervan uitgaat dat sommige nodes een minimumaantal kinderen hebben.
Hier is een fragment van een pagina (zonder classes of ID's…) die je mogelijk aan het scrapen bent:
...
<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>
...
Je bent alleen geïnteresseerd in div's met precies één h2-kop en minstens twee paragrafen, omdat je applicatie niet goed met onvolledige weersverwachtingen overweg kan.
De bovenstaande HTML is beschikbaar via forecast_html.
Deze oefening maakt deel uit van de cursus
Webscraping in R
Oefeninstructies
- Selecteer de gewenste
div's met de juiste XPATH-selector en maak daarbij gebruik van de functiecount().
Praktische interactieve oefening
Probeer deze oefening eens door deze voorbeeldcode in te vullen.
# Select only divs with one header and at least two paragraphs
forecast_html %>%
html_elements(xpath = '___')