Aan de slagGa gratis aan de slag

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

Cursus bekijken

Oefeninstructies

  • Selecteer de gewenste div's met de juiste XPATH-selector en maak daarbij gebruik van de functie count().

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 = '___')
Code bewerken en uitvoeren