웹크롤링은 3단계로 나뉜다.
요청 -> 추출 -> 저장
조금 자세한 내용은 코드를 보면서.
install.packages("tidyverse") #맨날 쓰는 그거... 파이프 연산자나 데이터 읽기, 정리등을 위해 필요함
install.packages("httr")
install.packages("rvest")
install.packages("jsonlite")
library(tidyverse)
library(httr)
library(rvest)
library(jsonlite)
res <- GET(
url = 'http://ncov.mohw.go.kr',
path = '/bdBoardList_Real.do',
query = list('brdId' = '1',
'brdGubun' = '14')
)
print(x = res)
class(x = res)
#크롬 개발자 모드에서 표에 커서를 올려놓으면 관련 코드가 푸른색으로 뜸. 아래와 같이 가공하세요.
tbl <- res %>%
read_html() %>%
html_node(css = 'div.data_table.mgt16 > table.num') %>%
html_table(fill = TRUE)
tbl[, 3:4] <- tbl$`환자발생 수 (사망)` %>%
str_remove_all(pattern = '[\r\n\t,]+') %>%
str_split(pattern = '명\\(사망', n = 2, simplify = TRUE)
colnames(x = tbl) <- c('대륙', '국가', '감염자', '사망자')
tbl$ `감염자` <- str_remove(string = tbl$ `감염자`, pattern = '명')
tbl$ `사망자` <- str_remove(string = tbl$ `사망자`, pattern = '\\)')
tbl[, 3:4] <- map_df(.x = tbl[, 3:4], .f = as.numeric)
getwd()
setwd(dir = './data')
#rds로 저장하기
saveRDS(object = tbl, file = 'Corona_20220415.RDS')
#엑셀로 저장하기
install.packages("writexl")
library(writexl)
write_xlsx(x = tbl, path = 'Corona_20220415.xlsx')
엑셀로도 가능하지만 단순반복노동수준을 낮출 수 있음. 쉽게 업데이트 가능함.
결과는 아래에.
엑셀로도 변환 가능하다.

엑셀은 이런 식으로...

'프로젝트' 카테고리의 다른 글
주택 노후도와 범죄율간 상관관계 분석 및 사업제안 (0) | 2023.09.18 |
---|---|
[ADsP] 중요 필기 모음 (0) | 2023.08.12 |
03-(2). EDA적 데이터 분석과 여러가지 plot으로 시각화 (python) (0) | 2022.06.09 |
03. pima indians 데이터로 의사결정나무 만들기 (python) (0) | 2022.06.09 |
01. 서울시 사회취약계층 융합을 위한 아동지원사업 제안(qgis) (0) | 2022.06.09 |