21.05.17 14:48 작성
·
368
0
안녕하세요,
영화관 통계 사이트 데이터를 rvest로 받아오고자 하는데 사이트를 분해해보니 'CSRFToken'이란 난수를 요청하는 것 같은데요, 아래와 같이 먼저 받아오고 POST를 사용하면 420 에러가 뜹니다.
혹시 POST를 날릴때 토큰도 같이 받아서 날릴 수 있는 방법이 있나요?
아래는 제가 작성해서 테스트해봤으나 동작하지 않는 코드입니다.
#토큰 가져오기
target_url<-"https://www.kobis.or.kr/kobis/business/main/main.do"
Token<-target_url %>% read_html() %>% html_nodes(xpath = '//*[@id="wrap"]/input') %>% html_attr('value')
#월별 관객 추이
target_url<-"https://www.kobis.or.kr/kobis/business/stat/them/findMonthlyTotalList.do"
ref<-"https://www.kobis.or.kr/kobis/business/stat/them/findMonthlyTotalList.do"
tmp<-POST(url = target_url,httr::add_headers(Referer = ref), query=list(
CSRFToken = Token,
loadVal = 0,
searchType = "search",
selectYear = 2021
)
)
답변 1
0
2021. 05. 17. 15:59
안녕하세요. Steady님
문의 해주신 내용에 대해서도 저도 알기는 쉽지 않은 것 같습니다. 큰 도움이 되지 못해서 죄송합니다.
다만, 올려주신 코드를 통해서 아래와 같이 readLines를 하면 원하시는 정보를 수집할 수 있습니다.
url<-tmp$request$url
b<-readLines(url,encoding='utf-8')