• 카테고리

    질문 & 답변
  • 세부 분야

    데이터 분석

  • 해결 여부

    미해결

자바스크립트 및 iframe으로 구성되어 있는 웹페이지 크롤링 문의

20.04.17 15:11 작성 조회수 257

0

안녕하세요,

네이버 금융의 종목분석 페이지에 나와 있는 재무정보를 크롤링하고자 하는데 문제에 부딪쳐 문의 드립니다. (https://finance.naver.com/item/coinfo.nhn?code=005930)

 아래 두 가지 방법으로 크롤링을 시도해보았습니다.

1) 강의에서 말씀하신 숨겨진 주소를 찾아서 크롤링

: 크롬 개발자 도구에서 Network 검사를 통해 숨겨진 주소를 확인하고 (이 경우 네이버가 지속적으로 인증값을 바꿈) JSON 형식으로 된 재무정보를 깔끔하게 불러들일 수 있으나, 인증값이 계속 바뀌기 때문에 이 부분을 핸들링 하는 것이 어려움. 따라서 아래 셀레니움을 이용한 방식을 사용하고자 하는데요,

2) 셀레니움을 통한 크롤링

: 따라서 셀레니움을 통해 크롤링을 시도했으나 소스가 iframe으로 보호되어 크롤링이 어렵습니다. 개발자도구에서 버튼의 xpath를 확인해도 정작 R에서는 읽어들이지 못하고 (iframe으로 숨겨진 탓으로 보입니다) css selector라는 크롬 익스텐션으로는 아예 재무정보 부분이 블록되어 있어서 제대로 된 xpath를 읽지 못합니다. 이 경우 핸들링을 어떻게 해야 할까요? 셀레니움 강의 부분은 짧아서 다른 정보를 찾아봤지만 파이썬으로 내용이 많이 나와 R과는 조금 다른 듯 합니다.

답변 1

답변을 작성해보세요.

0

안녕하세요. Steady 님

말씀하신데로 네이버 증권에서 크롤링하는것은 매우 까다로운것으로 보입니다.

네이버 증권은 FnGuide에서 정보를 제공받아지는 것으로 보이는데

Fnguide에서 다음과 같은 코드를 이용해서 수집하는게 어떨까 싶습니다.

도움이 되셨기를 바랍니다.

library(XML)

url<-"https://comp.fnguide.com/SVO2/ASP/SVD_Finance.asp?pGB=1&gicode=A005930&cID=&MenuYn=Y&ReportGB=&NewMenuID=103&stkGb=701"

b<-readLines(url,encoding = "UTF-8")

kk<-b[527:2023]

kk2<-paste0(kk,collapse = "")

h<-readHTMLTable(kk2)

h