구조가 나쁜 표에서 html_table()의 한계
때로는 부모 요소의 직접 자식인 텍스트만 선택하고 싶을 때가 있어요. 그런데 아래 예시 표에서는 역할 이름 자체가 em 태그로 감싸져 있습니다. 게다가 그 기능(예: "Voice")도 em 부분과 같은 td 요소 안에 들어 있어, 데이터를 질의하기에 최적의 구조가 아니에요.
다음은 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>
이번 연습에서는 익숙한 rvest 함수를 사용해 표를 스크레이핑해 보겠습니다. 그렇게 하면서 이 함수의 한계를 직접 확인하게 될 거예요.
roles_html 변수에는 해당 표가 포함된 문서가 들어 있어요.
이 연습은 강의의 일부입니다
R로 배우는 웹 스크레이핑
연습 안내
- 1장에서 배운 함수를 사용해 표에서 데이터 프레임을 추출해 보세요.
- 결과로 생성된 데이터 프레임을 확인해 보세요.
실습형 인터랙티브 연습
이 예제를 이 샘플 코드를 완성하여 풀어보세요.
# 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
___