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