User Tools

Site Tools


xml_parsing_vai_api_2
> ################
> # install.packages("xml2")
> library(xml2)
> 
> 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
[1] "https://kobis.or.kr/kobisopenapi/webservice/rest/movie/searchMovieList.xml"
> 
> sfRes <- GET(url, query= list("key" = KEY, "directorNm"= dir))
> sfRes
Response [https://kobis.or.kr/kobisopenapi/webservice/rest/movie/searchMovieList.xml?key=e95ca8d1202a4ffe248c09f1e1268cae&directorNm=%ED%81%AC%EB%A6%AC%EC%8A%A4%ED%86%A0%ED%8D%BC%20%EB%86%80%EB%9E%80]
  Date: 2024-12-05 01:21
  Status: 200
  Content-Type: application/xml;charset=utf-8
  Size: 4.98 kB
<BINARY BODY>
> sfParsed <- read_xml(sfRes)
> sfParsed
{xml_document}
<movieListResult>
[1] <totCnt>12</totCnt>
[2] <movieList>\n  <movie>\n    <movieCd>20081056</movi ...
[3] <source>영화진흥위원회</source>
> xmlId <- xml_text(xml_find_all(sfParsed, xpath = "//movie/movieCd"))
> xmlId
 [1] "20081056" "20226431" "20100312" "20164621"
 [5] "20201122" "20010238" "20112703" "20050112"
 [9] "20149120" "19988766"
> xmlTitle <- xml_text(xml_find_all(sfParsed, xpath = "//movie/movieNm"))
> xmlTitle
 [1] "다크 나이트"        "오펜하이머"        
 [3] "인셉션"             "덩케르크"          
 [5] "테넷"               "메멘토"            
 [7] "다크 나이트 라이즈" "배트맨 비긴즈"     
 [9] "인터스텔라"         "미행"              
> library(tibble)
> df <- tibble(ID = xmlId, Title = xmlTitle)
> df
# A tibble: 10 × 2
   ID       Title             
   <chr>    <chr>             
 1 20081056 다크 나이트       
 2 20226431 오펜하이머        
 3 20100312 인셉션            
 4 20164621 덩케르크          
 5 20201122 테넷              
 6 20010238 메멘토            
 7 20112703 다크 나이트 라이즈
 8 20050112 배트맨 비긴즈     
 9 20149120 인터스텔라        
10 19988766 미행              
> df[1,1]
# A tibble: 1 × 1
  ID      
  <chr>   
1 20081056
> df[1,2]
# A tibble: 1 × 1
  Title      
  <chr>      
1 다크 나이트
> dff <- data.frame(df)
> dff[10,2]
[1] "미행"
> 
> df
# A tibble: 10 × 2
   ID       Title             
   <chr>    <chr>             
 1 20081056 다크 나이트       
 2 20226431 오펜하이머        
 3 20100312 인셉션            
 4 20164621 덩케르크          
 5 20201122 테넷              
 6 20010238 메멘토            
 7 20112703 다크 나이트 라이즈
 8 20050112 배트맨 비긴즈     
 9 20149120 인터스텔라        
10 19988766 미행              
> 
> n <- length(df$ID)
> dlist = list(id=list(), title=list(), dir=list(), actor=list())
> actors = rep(NA, n)
> for(i in 1:n){
+   sFd <- "http://www.kobis.or.kr/kobisopenapi/webservice/rest/movie/searchMovieInfo.xml"
+   KEY <- 'e95ca8d1202a4ffe248c09f1e1268cae'
+   url <-URLencode(iconv(sFd, to="utf8"))
+ 
+   sfdr <- GET(url, query= list("key" = KEY, "movieCd"= df[i, 1]))
+   sfdrP <- read_xml(sfdr)
+   xmlActor <- xml_text(xml_find_all(sfdrP, "//actors/actor/peopleNm"))
+   xmlDir <- xml_text(xml_find_all(sfdrP, "//directors/director/peopleNm"))
+   dlist$actor[[i]] <- xmlActor
+   dlist$dir[[i]] <- xmlDir
+   dlist$id[[i]] <- dff[i,1]
+   dlist$title[[i]] <- dff[i,2]
+   
+ }
> dlist
$id
$id[[1]]
[1] "20081056"

$id[[2]]
[1] "20226431"

$id[[3]]
[1] "20100312"

$id[[4]]
[1] "20164621"

$id[[5]]
[1] "20201122"

$id[[6]]
[1] "20010238"

$id[[7]]
[1] "20112703"

$id[[8]]
[1] "20050112"

$id[[9]]
[1] "20149120"

$id[[10]]
[1] "19988766"


$title
$title[[1]]
[1] "다크 나이트"

$title[[2]]
[1] "오펜하이머"

$title[[3]]
[1] "인셉션"

$title[[4]]
[1] "덩케르크"

$title[[5]]
[1] "테넷"

$title[[6]]
[1] "메멘토"

$title[[7]]
[1] "다크 나이트 라이즈"

$title[[8]]
[1] "배트맨 비긴즈"

$title[[9]]
[1] "인터스텔라"

$title[[10]]
[1] "미행"


$dir
$dir[[1]]
[1] "크리스토퍼 놀란"

$dir[[2]]
[1] "크리스토퍼 놀란"

$dir[[3]]
[1] "크리스토퍼 놀란"

$dir[[4]]
[1] "크리스토퍼 놀란"

$dir[[5]]
[1] "크리스토퍼 놀란"

$dir[[6]]
[1] "크리스토퍼 놀란"

$dir[[7]]
[1] "크리스토퍼 놀란"

$dir[[8]]
[1] "크리스토퍼 놀란"

$dir[[9]]
[1] "크리스토퍼 놀란"

$dir[[10]]
[1] "크리스토퍼 놀란"


$actor
$actor[[1]]
[1] "크리스찬 베일" "마이클 케인"   "히스 레저"    
[4] "아론 에크하트" "매기 질렌할"   "게리 올드만"  
[7] "모건 프리먼"  

$actor[[2]]
[1] "킬리언 머피"          "에밀리 블런트"       
[3] "맷 데이먼"            "로버트 다우니 주니어"
[5] "플로렌스 퓨"          "조쉬 하트넷"         
[7] "케이시 애플렉"        "라미 말렉"           
[9] "케네스 브래너"       

$actor[[3]]
[1] "레오나르도 디카프리오" "엘렌 페이지"          
[3] "마리옹 꼬띠아르"      

$actor[[4]]
[1] "톰 하디"       "마크 라이런스" "케네스 브래너"
[4] "킬리언 머피"   "제임스 다시"   "케빈 구스리"  

$actor[[5]]
 [1] "존 데이비드 워싱턴" "로버트 패틴슨"     
 [3] "엘리자베스 데비키"  "애론 테일러 존슨"  
 [5] "마이클 케인"        "케네스 브래너"     
 [7] "히메쉬 파텔"        "클레멘스 포시"     
 [9] "유리 코로콜니코브"  "앤드류 하워드"     
[11] "마틴 도노반"       

$actor[[6]]
[1] "가이 피어스"   "캐리 앤 모스"  "조 판톨리아노"

$actor[[7]]
[1] "크리스찬 베일"  "게리 올드만"    "앤 해서웨이"   
[4] "톰 하디"        "조셉 고든 레빗"

$actor[[8]]
[1] "리암 니슨"     "크리스찬 베일" "마이클 케인"  

$actor[[9]]
[1] "매튜 매커너히"   "앤 해서웨이"     "마이클 케인"    
[4] "제시카 차스테인" "케이시 애플렉"  

$actor[[10]]
[1] "제레미 테오발드" "루시 러셀"      


> n <- length(dlist$id) 
> k <- rep(NA, n)
> for (i in 1:n) {
+   print(dlist$id[[i]])
+   print(dlist$title[[i]])
+   print(dlist$dir[[i]])
+   print(dlist$actor[[i]])
+ }
[1] "20081056"
[1] "다크 나이트"
[1] "크리스토퍼 놀란"
[1] "크리스찬 베일" "마이클 케인"   "히스 레저"    
[4] "아론 에크하트" "매기 질렌할"   "게리 올드만"  
[7] "모건 프리먼"  
[1] "20226431"
[1] "오펜하이머"
[1] "크리스토퍼 놀란"
[1] "킬리언 머피"          "에밀리 블런트"       
[3] "맷 데이먼"            "로버트 다우니 주니어"
[5] "플로렌스 퓨"          "조쉬 하트넷"         
[7] "케이시 애플렉"        "라미 말렉"           
[9] "케네스 브래너"       
[1] "20100312"
[1] "인셉션"
[1] "크리스토퍼 놀란"
[1] "레오나르도 디카프리오" "엘렌 페이지"          
[3] "마리옹 꼬띠아르"      
[1] "20164621"
[1] "덩케르크"
[1] "크리스토퍼 놀란"
[1] "톰 하디"       "마크 라이런스" "케네스 브래너"
[4] "킬리언 머피"   "제임스 다시"   "케빈 구스리"  
[1] "20201122"
[1] "테넷"
[1] "크리스토퍼 놀란"
 [1] "존 데이비드 워싱턴" "로버트 패틴슨"     
 [3] "엘리자베스 데비키"  "애론 테일러 존슨"  
 [5] "마이클 케인"        "케네스 브래너"     
 [7] "히메쉬 파텔"        "클레멘스 포시"     
 [9] "유리 코로콜니코브"  "앤드류 하워드"     
[11] "마틴 도노반"       
[1] "20010238"
[1] "메멘토"
[1] "크리스토퍼 놀란"
[1] "가이 피어스"   "캐리 앤 모스"  "조 판톨리아노"
[1] "20112703"
[1] "다크 나이트 라이즈"
[1] "크리스토퍼 놀란"
[1] "크리스찬 베일"  "게리 올드만"    "앤 해서웨이"   
[4] "톰 하디"        "조셉 고든 레빗"
[1] "20050112"
[1] "배트맨 비긴즈"
[1] "크리스토퍼 놀란"
[1] "리암 니슨"     "크리스찬 베일" "마이클 케인"  
[1] "20149120"
[1] "인터스텔라"
[1] "크리스토퍼 놀란"
[1] "매튜 매커너히"   "앤 해서웨이"     "마이클 케인"    
[4] "제시카 차스테인" "케이시 애플렉"  
[1] "19988766"
[1] "미행"
[1] "크리스토퍼 놀란"
[1] "제레미 테오발드" "루시 러셀"      
> k
 [1] NA NA NA NA NA NA NA NA NA NA
> 
> a <- data.frame(unlist(dlist$title[[1]]))
> b <- data.frame(unlist(dlist$actor[[1]]))
> c <- data.frame(unlist(dlist$dir[[1]]))
> dat <- cbind(a,c,b)
> colnames(dat) <- c("title", "dir", "actors")
> dat
        title             dir        actors
1 다크 나이트 크리스토퍼 놀란 크리스찬 베일
2 다크 나이트 크리스토퍼 놀란   마이클 케인
3 다크 나이트 크리스토퍼 놀란     히스 레저
4 다크 나이트 크리스토퍼 놀란 아론 에크하트
5 다크 나이트 크리스토퍼 놀란   매기 질렌할
6 다크 나이트 크리스토퍼 놀란   게리 올드만
7 다크 나이트 크리스토퍼 놀란   모건 프리먼
>
xml_parsing_vai_api_2.txt · Last modified: 2024/12/05 10:23 by hkimscil

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki