Zacznij terazZacznij za darmo

Ograniczenia funkcji html_table() w przypadku źle zbudowanych tabel

Czasami chcesz zaznaczyć tylko tekst będący bezpośrednim potomkiem elementu nadrzędnego. W poniższej przykładowej tabeli nazwa roli jest jednak owinięta tagiem em. Jej funkcja, np. „Voice", jest zawarta w tym samym elemencie td co część z tagiem em – co nie jest optymalne z punktu widzenia pobierania danych.

Oto fragment kodu 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>

W tym ćwiczeniu spróbujesz pobrać tabelę przy użyciu znanej funkcji z pakietu rvest. Dzięki temu przekonasz się, jakie ma ona ograniczenia.

Zmienna roles_html zawiera dokument z tabelą.

To ćwiczenie jest częścią kursu

Web Scraping w R

Zobacz kurs

Instrukcje do ćwiczenia

  • Spróbuj wyodrębnić ramkę danych z tabeli, używając funkcji poznanej w pierwszym rozdziale.
  • Przyjrzyj się otrzymanej ramce danych.

Interaktywne ćwiczenie praktyczne

Spróbuj tego ćwiczenia, uzupełniając ten przykładowy kod.

# 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
___
Edytuj i uruchom kod