-
R 기초 14 - 웹(멜론)에서 가사 불러오기(웹을 이용한 데이터 가져오기) XML, jsonR 2022. 10. 24. 12:45
xml data 읽어오기
```jsx # 멜론 노래 가사 읽기 # install.packages('httr') # library(httr) install.packages("XML") # XML package를 install 한다. library(XML) # 불러온다. # url을 준다. (멜론 가사가 있는 url) url <- "https://www.melon.com/song/popup/lyricPrint.htm?songId=10000" # GET 방식으로 url을 불러온다. source <- htmlParse(rawToChar(GET(url)$content)) # html 코드를 불러온다. source text <- xpathSApply(source, "//div[@class='box_lyric_text']", xmlValue) # 해당 div 부분을 불러온다. text mytest <- gsub("[\r\n\t]", "", text) # 해당 정규표현식 삭제 mytest # ------------------------ # xml data 읽기 ```
주소를 가져오기전에 XML package를 install한다.
url을 복사해서 url이라는 변수명에 넣고, GET방식으로 가져오도록 코드를 입력한다.
source 변수명은 해당 주소의 html을 가져오게 된다.
text 변수명은 해당 코드에 대한 내용을 가져오게 된다.(가사)
mytest는 정규표현식까지 출력되기때문에 그것을 삭제해준다.
xml data 읽어오기
# ------------------------ # xml data 읽기 url <- "https://raw.githubusercontent.com/pykwon/python/master/seoullibtime5.xml" r <- GET(url) typeof(r) doc <- xmlTreeParse(r, useInternalNodes = T) doc rootNode <- xmlRoot(doc) rootNode rootNode[[1]] rootNode[[1]][[1]] xmlSApply(rootNode, xmlValue) # xmlValue는 한글패치 xpathSApply(rootNode, "//LBRRY_NAME", xmlValue) # LBRRY_NAME 부분만 읽어오기
url을 가져와서 get 방식으로 r이라는 변수명에 넣고 그것을 읽어온다.
xmlValue는 한글패치가 되도록 하는 것이다.
json data 읽어오기
# ------------------------ # json data 읽기 install.packages("rjson") # rjson install 하기 library(rjson) # 불러오기 url <- "https://raw.githubusercontent.com/pykwon/python/master/seoullibtime5.json" doc <- fromJSON(file=url) doc df <- data.frame(doc) df df$SeoulLibraryTime.row.LBRRY_NAME df$SeoulLibraryTime.row.ADRES
rjson을 install하고 url을 읽어와서 data를 불러온다.
'R' 카테고리의 다른 글
R 기초 16 - 데이터 전처리 (0) 2022.10.24 R 기초 15 - 시각화 - 그래프(막대, 점, 원형), (boxplot, hist) (0) 2022.10.24 R 기초 13 - 내장함수(최소값, 평균값, 분산... 등), 사용자 정의 함수 (0) 2022.10.24 R 기초 12 - 평균값, 중앙값, 최빈값, 분산, 표준편차 (0) 2022.10.24 R 기초 11 - 반복문(for, while, repeat) (0) 2022.10.24