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