User Tools

Site Tools


xml_parsing_via_api

This is an old revision of the document!


library(XML)
library(httr)
library(tidyr)

searchPeople <- "https://kobis.or.kr/kobisopenapi/webservice/rest/people/searchPeopleList.xml"
KEY <- 'e95ca8d1202a4ffe248c09f1e1268cae'
name <- "크리스토퍼놀란"
name <- iconv(name, to="utf8")
url <-URLencode(iconv(searchPeople, to="utf8"))
url

spRes <- GET(url, query= list("key" = KEY, "peopleNm"= name))
spRes
spParsed <- xmlParse(spRes)
spParsed
xmlPeople <- getNodeSet(spParsed, "//people")
xmlPeople
xmlFilm <- getNodeSet(spParsed, "//people/filmoNames")
xmlFilm
filmCh <- xmlToDataFrame(xmlFilm, stringsAsFactors = F)
filmCh
View(filmCh)

library(tidyr)
library(tidyverse)

films <- filmCh
films  %>% 
  mutate(text = strsplit(as.character(text), "\\|")) %>% 
  unnest(text)

fs <- mutate(films, text = strsplit(as.character(text), "\\|"))
fs <- unnest(fs, text)
fs
str(fs)
data.frame(fs)
fs[1,]

##################################

sFilms <- "https://kobis.or.kr/kobisopenapi/webservice/rest/movie/searchMovieList.xml"
KEY <- 'e95ca8d1202a4ffe248c09f1e1268cae'
dir <- "크리스토퍼놀란"
dir <- iconv(dir, to="utf8")
url <-URLencode(iconv(sFilms, to="utf8"))
url

sfRes <- GET(url, query= list("key" = KEY, "directorNm"= dir))
sfRes
sfParsed <- xmlParse(sfRes)
sfParsed
xmlId <- getNodeSet(sfParsed, "//movie/movieCd")
xmlId
xmlF <- getNodeSet(sfParsed, "//movie/movieNm")
xmlF
filmId <- xmlToDataFrame(xmlId, stringsAsFactors = F)
filmId
colnames(filmId) <- "filmId"
filmId
filmN <- xmlToDataFrame(xmlF, stringsAsFactors = F)
colnames(filmN) <- "film"
filmN
str(filmN)
fg <- cbind(filmId, filmN)
fg
fg <- unnest(fg, film)
fg

###############

sFd <- "http://www.kobis.or.kr/kobisopenapi/webservice/rest/movie/searchMovieInfo.xml"
KEY <- 'e95ca8d1202a4ffe248c09f1e1268cae'
filmId[1,]
fg$filmId[1]
fg$film[1]
id <- fg$filmId[1]
id
url <-URLencode(iconv(sFd, to="utf8"))
url

sfdr <- GET(url, query= list("key" = KEY, "movieCd"= id))
sfdr
sfdrP <- xmlParse(sfdr)
sfdrP
xmlA <- getNodeSet(sfdrP, "//actors/actor/peopleNm")
xmlA

actor <- xmlToDataFrame(xmlA, stringsAsFactors = F)
actor
colnames(actor) <- "actor"
actor


dir
mv <- fg$film[1]
mv
dtoa <- data.frame(dir,actor, id, mv)
dtoa

write.csv(dtoa, file="fstdy.csv", fileEncoding = "euc-kr")
xml_parsing_via_api.1732761086.txt.gz · Last modified: 2024/11/28 11:31 by hkimscil

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki