rvest
패키지를 이용한 웹 크롤링 방법
먼저 패키지를 설치합니다
install.packages("rvest")
library(rvest)
가져오고 싶은 부분에서 오른쪽 클릭 후 검사를 눌러보면 쉽게 구조를 알 수 있는데요
스포츠 뉴스에서 한번 가져와보겠습니다.
링크는 https://sports.news.naver.com/index.nhn 요기입니다.
제목 아무거나 하나 눌러서 검사 버튼을 눌러보면
<div class="title">
아래에 제목이 들어있는 것을 알 수 있습니다
이제 R을 이용해서 가져와보겠습니다.
url_news='https://sports.news.naver.com/index.nhn'
html_news=read_html(url_news,encoding='UTF-8')
url_news
에 링크를 저장하고 rvest
패키지의 함수 read_html
을 이용해 읽습니다UTF-8
은 인코딩 방식을 의미합니다
title=html_news %>% html_nodes(".title") %>% html_text()
html_nodes
와 html_text
를 이용해 title에 내용을 저장합니다.
파이프 연산자를 사용하지 않고
a=html_nodes(html_news,".title")
title=html_text(a)
이렇게 할 수도 있습니다
여기서 .title
는 아까 위에서 확인한 구조인데, 여기 있는 것을 가져오라는 의미입니다.
저장한 내용을 실행시켜보면
> head(title)
[1] "\n\t\t\t\t\n\t\t\t\t‘김국찬 3점 7방 폭발’ 현대모비스, DB 꺾고 2연패 탈출\n\t\t\t\t점프볼\n\t\t\t"
[2] "\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t훈련 멈추고 호통 친 아르테타, 라카제트는..\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t베스트일레븐\n\t\t\t\t\t\t"
[3] "\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\"류현진 영입 토론토에 테임즈 선물\" M..\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t스포티비뉴스\n\t\t\t\t\t\t"
[4] "\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t'조용한 미국 언론' 김재환 포스팅, 끝까..\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t스포츠조선\n\t\t\t\t\t\t"
[5] "\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t'비디디' 곽보성, \"깔끔한 경기, 기분 ..\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\tOSEN\n\t\t\t\t\t\t"
[6] "1‘일본에 푹 빠진’ 푸이그, “후지산 높이보다 더 흥분돼”"
필요 없는 문자들이 섞여있는데 gsub
함수를 이용해 처리할 수 있습니다
title <- gsub('\n|\t','',title)
\n과 \t를 제거합니다.
> head(title)
[1] "‘김국찬 3점 7방 폭발’ 현대모비스, DB 꺾고 2연패 탈출점프볼"
[2] "\"류현진 영입 토론토에 테임즈 선물\" M..스포티비뉴스"
[3] "훈련 멈추고 호통 친 아르테타, 라카제트는..베스트일레븐"
[4] "'조용한 미국 언론' 김재환 포스팅, 끝까..스포츠조선"
[5] "'비디디' 곽보성, \"깔끔한 경기, 기분 ..OSEN"
[6] "1‘일본에 푹 빠진’ 푸이그, “후지산 높이보다 더 흥분돼”"
깔끔해졌습니다
-끝-
'R' 카테고리의 다른 글
R을 이용한 웹 크롤링2 (표 가져오기) (6) | 2020.01.06 |
---|