Les limites de html_table() avec des tableaux mal structurés
Parfois, vous souhaitez uniquement sélectionner le texte qui est un descendant direct d’un élément parent. Dans le tableau ci-dessous, toutefois, le nom du rôle est encapsulé dans une balise em. Or sa fonction, par exemple « Voice », figure aussi dans le même élément td que la partie em, ce qui n’est pas idéal pour interroger les données.
Voici un extrait du code HTML :
<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>
Dans cet exercice, vous allez tenter d’extraire la table à l’aide d’une fonction rvest que vous connaissez. Ce faisant, vous en constaterez les limites.
La variable roles_html contient le document avec la table.
Cet exercice fait partie du cours
Web scraping en R
Instructions
- Essayez d’extraire un data frame à partir de la table avec une fonction vue au premier chapitre.
- Examinez le data frame obtenu.
Exercice interactif pratique
Essayez cet exercice en complétant cet exemple de code.
# 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
___