Aan de slagGa gratis aan de slag

De tekortkomingen van html_table() bij slecht gestructureerde tabellen

Soms wil je alleen tekst selecteren die een directe afstammeling is van een ouder-element. In de onderstaande voorbeeldtabel is de naam van de rol echter omgeven door een em-tag. Maar de functie, bijvoorbeeld "Voice", staat ook in hetzelfde td-element als het em-gedeelte, wat niet ideaal is om de gegevens op te vragen.

Hier is een fragment van de HTML-code:

<table>
 <tr>
  <th>Actor</th>
  <th>Role</th>
 </tr>
 <tr>
  <td class = "actor">Jayden Carpenter</td>
  <td class = "role"><em>Mickey Mouse</em> (Voice)</td>
 </tr>
 ...
</table>

In deze oefening probeer je de tabel te scrapen met een bekende rvest-functie. Zo ontdek je waar de beperkingen liggen.

De variabele roles_html bevat het document met de tabel.

Deze oefening maakt deel uit van de cursus

Webscraping in R

Cursus bekijken

Oefeninstructies

  • Probeer een data frame uit de tabel te halen met een functie die je in het eerste hoofdstuk hebt geleerd.
  • Bekijk het resulterende data frame.

Praktische interactieve oefening

Probeer deze oefening eens door deze voorbeeldcode in te vullen.

# Extract the data frame from the table using a known function from rvest
roles <- roles_html %>% 
  html_element(xpath = "//___") %>% 
  ___()
# Print the contents of the role data frame
___
Code bewerken en uitvoeren