본격적으로 R을 활용하여 이미지 크롤링을 해 볼 예정이다.
이미지 크롤링을 하기 전에 R-selenium 패키지가 준비되어있어야 한다.
https://chumiinii.tistory.com/4
동적 웹페이지 크롤링 준비
Rselenium 패키지 설치 1) selenium 다운받기. (ver. 3.5.3) >>> https://www.seleniumhq.org/download/ Downloads Firefox GeckoDriver is implemented and supported by Mozilla, refer to their documentation..
chumiinii.tistory.com
R- 코드
install.packages('RSelenium')
install.packages("rvest")
install.packages("httr")
library(RSelenium)
library(rvest)
library(httr)
remDr <- remoteDriver(remoteServerAddr = "localhost" ,
port = 4445L,
browserName = "chrome")
remDr$open()
#이 곳에 원하는 이미지 url을 넣어주면 된다.
remDr$navigate("https://www.google.com/search?q=truck&source=lnms&tbm=isch &sa=X&ved=0ahUKEwifiufv-e3jAhVYw4sBHZb8AzsQ_AUIEigC&biw=710&bih=667")
url_item<-remDr$getPageSource()[[1]]
url_item<-read_html(url_item, encoding="UTF-8")
# img태그 속의 data-src만 뽑아내는 과정이다
url_item2 <- url_item %>% html_nodes("img") %>% html_attr("data-src")
url_item2
# 이미지 내의 NA값을 전체적으로 지워주는 역할을 한다.
truckurl <- na.omit(url_item2)
truckurl
# for문을 이용해서 이미지를 다운로드 해준다.
for (i in truckurl %>% length %>% seq){ download.file(truckurl[i], paste0("./truck/truck_", i, ".jpeg"), mode = "wb")}
이 코드 속에서 for문을 이용하여 다운로드 하는 것을 자세하게 뜯어보겠다.
for (i in truckurl %>% length %>% seq {download.file(truckurl[i], paste0("./truck/truck_", i, ".jpeg"), mode = "wb")
}
i in truckurl %>% length %>% seq
: truckurl내에 있는 데이터의 길이(length)만큼 일정한 간격만큼(seq) 반복한다.
한마디로 변수에 있는 개수만큼 반복한다는 뜻이다.
download.file(truckurl[i], paste0("./truck/truck_", i, ".jpeg")
: truckurl[i] - 각 변수를 하나씩 꺼내어 준다,
"./truck/truck_" - home밑에 truck폴더 밑에 truck_의 이름으로 저장한다.
i - 1씩 증가하게 저장시킨다.
".jpeg" - jpeg형식으로 저장시킨다.
mode = "wb"
: 이진화 파일로 저장을 시켜야 컴퓨터 내에서 보일 때 우리가 생각하는 이미지로 저장이 된다.
'공부 > R' 카테고리의 다른 글
R을 이용한 데이터 전처리 (0) | 2019.12.13 |
---|---|
R 설치 오류 - 사용자 계정이 한글인 경우 (0) | 2019.12.11 |
R-Selenium 패키지 ChromDriver 버전 오류 (0) | 2019.12.07 |
동적 웹페이지 크롤링 준비 (0) | 2019.12.07 |