emart 매장 정보 얻기
2019. 4. 26. 11:45ㆍR/Web Crawling
emart의 전국 매장 정보와 상태를 수집
매장 하나의 정보가 저장되는 node의 패턴은 아래와 같다
li:nth-child(5)
위 숫자가 1에서 399까지 존재한다
가장 많은 정보를 담고 있는 점포는 5개의 상황을 담고 있는 킨텍스점이다.
따라서 변수가 점포 이름을 포함하여 6개가 되어야 한다
####################################################
## get function
####################################################
url <- 'https://store.emart.com/main/holiday.do'
web.scrap <- read_html(url)
download.file(url, destfile = "emart.html", quiet = T)
test <- read_html("emart.html")
emart.list <- NULL
get.emart.branch <- function(x){
raw <- matrix(nrow = 399, ncol = 6) %>% as.tibble
name <- c("store", "situation1",
"situation2", "situation3",
"situation4", "situation5")
colnames(raw) <- name
temp <- NULL
for(i in 1:399){
sel <- 'li:nth-child(' #i )
node <- paste0(sel, i, ')')
temp <- x %>% html_nodes(node) %>%
html_text %>% as.tibble %>%
mutate(length = str_length(value)) %>%
filter(length == max(length)) %>%
select(-length) %>%
str_trim(side = c("both")) %>%
str_replace_all('\\r|\\t|\\n','@') %>%
str_replace_all('\\s{2,}','') %>%
str_replace_all('[@]+','@') %>% as.tibble %>%
separate(value, name, sep = '@') %>%
as.tibble
for(j in 1:6){
raw[i,j] <- temp[1,j]
}
}
emart.list <- raw %>% as.tibble() %>% View(list)
write_csv(emart.list, 'emart.csv', col_names = T)
}
'R > Web Crawling' 카테고리의 다른 글
RSelenium으로 뉴스 헤드라인 수집 (0) | 2019.05.06 |
---|---|
이미지 파일 일괄 다운로드 받기 (0) | 2019.04.27 |
a href에서 url 얻기 (0) | 2019.04.25 |
XPath를 활용한 베스트셀러 수집하기 (0) | 2019.04.25 |
Xpath를 활용한 MLB 타자 정보 수집 (0) | 2019.04.25 |