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
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
___