본문 바로가기
방구석코딩/주식 크롤링 분석

[파이썬] 주식 데이터 크롤링(3) - 웹 브라우저 자동 실행(webdriver)

by 석세상 2024. 7. 9.
반응형

이번에는 주식 정보 크롤링을 위한 실질적인 코드 작성이 들어가는 단계이다. 네이버 증권에 있는 주식 정보를 불러오는 방법이다. 

 

웹 브라우저 실행

주식 데이터 크롤링을 하기 위해서는 맨 처음으로 정보가 들어있는 웹 페이지를 실행해야 한다. 아래 코드를 보며 순서대로 실행해보자. 앞의 컨텐츠에서 얘기했는 주석을 체계적으로 달아주어야 향후에 변동이 생기거나 내가 변경해야 할 것들이 있으면 알아보기 쉽다.

 

아래 코드를 하나씩 아래에 설명해보도록 하자.

#########################################################################
# 01. kospi 페이지 정보 및 브라우저 실행
#########################################################################

# 브라우저 실행 - 웹 브라우저를 띄우는 것 말고는 아무런 페이지 정보없음
browser = webdriver.Chrome()             # 크롬 브라우저 실행, 모듈명.함수
# browser.maximize_window()              # 브라우저 크기 최대화

# 코스피 초기 주소 입력
p_url = 'https://finance.naver.com/sise/sise_market_sum.naver?sosok=0&page=' # kospi url 초기값

# 2) 초기 주소 실행
browser.get(p_url)     # 해당 url을 실행

 

먼저  코드를 실행하기 전 크롬 브라우저가 없다면 설치하는 것이 필요하다. 다른 브라우저의 경우에도 크롤링이 가능하다고 알고 있지만 크롬이 가장 안정적으로 크롤링을 할 수 있다고 하기 때문에 크롬 브라우저를 설치하는 것이 좋다.

 

또한 과거에는 크롬 브라우저를 설치하고 크롬에서 웹드라이버를 따로 설치해줘야 했지만 지금은 자동으로 설치되는 것으로 보인다.

 

1) 크롬 브라우저 실행 코드

크롬을 설치했다면 첫번째 코드를 보자. browser = webdriver.Chrome() 부분은 이전 컨텐츠의 webdriver 라이브러리를 통해 크롬 브라우저를 실행한다. 해당 코드를 실행하면 크롬 브라우저가 자동으로 실행되는 것을 볼 수 있다. 이때 크롬 창만 띄워지고 아무런 정보는 표시되지 않는다.

 

그 아래 주석으로 처리된 browser.maximize_window() 부분을 실행하면 브라우저 창 크기가 최대로 커지게 된다.

 

중간중간 코드를 작성하면서 웹페이지의 정보를 큰 창에서 보고 싶다면 해당 코드를 실행하는 것이 좋을 수 있다. 하지만 코드를 모두 작성하고 결과까지 제대로 나온 것을 확인했다면 자동으로 실행되는 부분이므로 굳이 창을 크게 키울 필요성이 없다.

 

따라서 한 단계라도 과정을 줄이기 위해서 모든 테스트가 끝난뒤에는 불필요한 코드는 삭제하는 것이 효율적인다.

 

2) 주식 정보 페이지 정보

다음은 코스피 초기 주소를 입력하는 부분이다. 여기서는 코스피 정보가 들어있는 url 주소를 입력한다. 초기 주소는 p_url이라는 이름으로 생성해둔다.

 

해당 주소는 네이버 증권을 검색하여 들어가면 알 수 있다. 여기서 중요한 부분은 sosok 부분과 page 부분인데 이런 부분을 위해 앞의 사전작업 컨텐츠에서 미리 필요한 정보들을 알아두는 것이 필요한 것이다. 

 

사전 작업의 내용은 아래 링크에서 확인할 수 있다.

 

[파이썬] 증권 전 종목 크롤링 하기 (1) - 사전 작업

파이썬을 통해 증권 정보를 크롤링 하는 방법에 대해서는 여러 자료에서 찾아볼 수 있다. 하지만 내가 원하는 전 종목, 모든 항목에 대해서 한번에 크롤링 할 수 있는 자료를 찾는 건 쉽지 않았

gusugi.tistory.com

 

3) 초기 주소 실행

다음으로는 browser.get(p_url)인데 여기서 browser는 1)에서 정의한 크롬 브라우저를 띄우고 그 안에 2)에서 정의한 주소를 크롬 브라우저에 실행하는 것이다. 이 부분을 실행하면 크롬에서 네이버 증권 페이지가 실행되는 것을 볼 수 있다.

728x90

여기서 일반적으로 크롬 브라우저를 실행했을때와 다른 점을 보자면 주소입력 창 부분 아래에 다음과 같은 메세지가 뜨는 것을 볼 수 있다. 수동으로 실행된 것이 아니라 프로그램에 의해서 자동으로 실행되었을때 보여지는 메세지로 판단된다. 

 

 

실행된 화면 결과를 보면 다음과 같이 보여진다.

 

참고로 p_url의 마지막 부분인 page=에 아무것도 입력하지 않은 이유는 네이버 증권에서 page 부분에 아무것도 입력하지 않으면 1페이지를 보여준다.

 

다음으로 할 작업은 체크박스 부분을 내가 원하는 항목을 체크하기 위해 기존에 선택되어 있는 항목을 해제해야 한다. 이 부분은 다음 컨텐츠에 이어서 작성하도록 하겠다. 

728x90
반응형

댓글