CommencerCommencer gratuitement

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

Afficher le cours

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
___
Modifier et exécuter le code