R 주제/크롤링
[R 크롤링] 5. html 추출 연속 적용하기
만다린망고
2020. 7. 29. 08:52
반응형
지난 시간에 멜론 차트를 크롤링한 코드를 봅시다.
#라이브러리 불러오기
library(httr)
library(rvest)
#GET 함수로 서버에 정보 요청하기
url = 'https://www.melon.com/chart/'
get_url = GET(url)
#read_html 함수로 html 코드 읽기
my_html=read_html(get_url,encoding='utf-8')
#ellipsis rank01 클래스만 추출
pick1=html_nodes(my_html,'.ellipsis.rank01')
#a 태그만 추출
pick2=html_nodes(pick1,'a')
#텍스트 추출
pick3=html_text(pick2)
테크를 추출하는 부분을 보면, 테그추출 함수를 적용할 때마다 새로운 변수에 저장을 해주어야 했습니다. 만약 태그 추출 함수를 더 많이 사용해야한다면, 코드가 계속 늘어날 것입니다.
이런 경우 태그추출을 연속사용하는 편한 방법이 있습니다. %>% 연산자를 이용하는 것입니다. 이 연산자는 dplyr 패키지에서 제공합니다.
위 코드는 아래와 같이 바뀝니다.
pick1=my_html %>% html_nodes('.ellipsis.rank01') %>% html_nodes('a') %>% html_text(trim=TRUE)
%>% 뒤의 함수를 앞에 적용하는 연산자이고, pipe 연산자라고 부릅니다.
반응형