본문 바로가기

파이썬

[파이썬] 네이버증권 테마종목 크롤링 (1) url 분석 및 html 구조 파악

추락하는 태양 마차 파에톤

 

이번 글까지는 파이썬 코드가 등장하지 않는다.

 

사실 다 써놓고 보니 너무 조악해서 안 보고 넘어가도 좋을 것 같다.

 

크롤링의 기초와 HTML 구조를 파악하여 어떻게 접근할 지 구상하는 것이 이번 글의 목표이다.

 

그리고 최종 목적은 네이버증권의 테마별 종목과 테마명을 크롤링하여 엑셀에 저장하는 것까지이다.

 

[최종 결과물]

 

 


 

그러기위해 네이버증권의 웹페이지를 살펴보자.

 

기본 페이지

 

여기에서 우리가 관심있는 것은 테마이다. 더보기를 누르면 수많은 테마가 있는데 약 2024년 기준 약 283개이다.

 

 

 


 

 

 

 

 

 

처음보는 단어인 ‘제대혈’ 테마를 눌러서 물음표에 마우스를 올리면 제대혈에 대한 설명이 뜬다.

종목명 옆의 문서모양에 마우스를 올리면 해당 종목이 해당 테마로 분류된 이유를 서술한다.


약 280개 테마가 있고 한 테마는 2~141개의 종목이 있는데 종목을 다 모으면 중복된 회사를 포함하여 6000개 이상의 회사와 설명 데이터를 얻을 수 있다.

 


 

 

 

 

테마 메인 페이지의 url은 위와 같은데 맨 아래의 1페이지를 한번 더 누르면 &page=1이 뜬다.


맨 뒤의 숫자만 바꾸면 쉽게 접근할 수 있다는 것을 알 수 있다.

 

 

제대혈 테마를 누르면 url은 위와 같다. 제대혈 테마의 테마 넘버는 124번. 이 역시 맨 뒤의 테마 넘버만 바꾸면 쉽게 접근할 수 있다.

 

 


 

 

 

테마별 시세 페이지에서 우리의 친구 F12를 누르면 개발자도구가 뜨는데,

 

여기서 Elements의 <body onload=”getGNB();”> 에 커서를 올리면 화면에서 해당하는 부분이 표시된다.

 

화살표를 눌러서 확장하면 더 디테일한 부분을 확인할 수 있다.


내가 찾고 싶은 것은, 제대혈의 물음표에 해당하는 부분과 종목명에서 서류모양의 표시 텍스트이다.


계속해서 화살표를 누르면서 범위를 좁혀나가면 금방 찾을 수 있다.


onload -> wrap -> newarea -> contentarea -> box_type_l -> table summary="업종별 시세 리스트" -> tbody(여기서 colgroup 아님 주의)

 


 

 

혹시 위 방법이 무슨 소리인지 모르겠으면 ctrl+F를 눌러서 ‘업종별 시세 리스트’를 검색하면 바로 찾을 수 있다.

 

tbody에서 <tr onmouseover>의 한 줄이 종목 한 줄의 정보인 것을 알 수 있다.

 

여기서 쭉쭉 내리면서 찾다보면 <a href>에 히든버튼이 있고 그 아래로는 확장되지 않는데 여기는 내가 찾는 텍스트가 없다.


그래서 아랫쪽을 좀 더 보면 <div class=”info_layer_wrap> → <p class=”info_txt”>라는 탭 안에 내가 찾는 종목 정보가 있다.

 

사실 가장 쉽게 찾는 법은 처음부터 ctrl+F를 눌러서 “동종 제대혈유래 줄기세포치료제~~~”를 검색하면 바로 나올 것이고 어느 태그에 있는지 바로 알 수 있다.

 


이제 URL 구조도 알았고, HTML구조도 파악했으니 코드로 추출해보자.


(제대혈이 뭔지에 대한 텍스트 정보는 파악하지 않았지만 다음 글에 후술)