시작하기무료로 시작하기

구조가 나쁜 표에서 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
___
코드 편집 및 실행