IniziaInizia gratis

I limiti di html_table() con tabelle strutturate male

A volte vuoi selezionare solo il testo che è un discendente diretto di un elemento genitore. Nella tabella seguente, però, il nome del ruolo è racchiuso in un tag em. Ma la sua funzione, ad es. "Voice", è contenuta nello stesso elemento td insieme alla parte in em, il che non è l’ideale per interrogare i dati.

Ecco un estratto del codice 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>

In questo esercizio proverai a fare scraping della tabella usando una funzione nota di rvest. Così facendo, ne riconoscerai i limiti.

La variabile roles_html contiene il documento con la tabella.

Questo esercizio fa parte del corso

Web scraping in R

Visualizza il corso

Istruzioni dell'esercizio

  • Prova a estrarre un data frame dalla tabella con una funzione che hai imparato nel primo capitolo.
  • Dai un’occhiata al data frame risultante.

Esercizio pratico interattivo

Prova a risolvere questo esercizio completando il codice di esempio.

# 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
___
Modifica ed esegui il codice