네이버 금융 주식정보 크롤링하기 【파이썬 코드 포함】

🚀 네이버 금융 주식정보 크롤링하기 【파이썬 코드 포함】

네이버 금융 주식정보 크롤링하기 【파이썬 코드 포함】

💡 네이버 금융 크롤링, 왜 필요할까?

주식 투자를 할 때 가장 중요한 것은 정확한 정보입니다. 네이버 금융에서는 시가총액, 거래량, 영업이익 등 다양한 데이터를 제공하지만, 이를 직접 확인하고 정리하는 것은 번거롭습니다.

그래서 해결책!
파이썬을 이용하면 웹에서 자동으로 데이터를 수집하고 정리할 수 있습니다. 특히, Selenium과 Pandas를 활용하면 실시간 데이터를 쉽게 가져올 수 있습니다.

이 글에서는 파이썬을 이용해 네이버 금융에서 주식 정보를 크롤링하는 방법을 자세히 설명하겠습니다.
📌 완전 초보도 따라할 수 있도록 코드 포함!


📌 1. 크롤링할 데이터 확인하기

크롤링을 하기 전에 먼저 네이버 금융 페이지에서 어떤 데이터를 가져올지 확인해야 합니다.

  1. 네이버 금융 접속: 네이버 금융
  2. 국내증시 → 시가총액 클릭
  3. 시가총액 상위 종목 리스트 확인

🔍 URL 구조 분석
예를 들어, 코스피 시가총액 페이지의 URL은 다음과 같습니다.

https://finance.naver.com/sise/sise_market_sum.nhn?sosok=0&page=1

📌 sosok=0 → 코스피 / sosok=1 → 코스닥
📌 page=1 → 페이지 번호


📌 2. 크롤링을 위한 파이썬 환경 설정

크롤링을 위해 SeleniumPandas 패키지가 필요합니다.

🛠 필수 라이브러리 설치

아래 명령어를 실행하여 필요한 패키지를 설치합니다.

pip install selenium pandas

🛠 크롬 드라이버 다운로드

  1. 크롬 브라우저 버전 확인

    • 크롬 주소창에 chrome://version/ 입력
    • "버전" 확인 (예: 104.0.5112.79)
  2. 크롬 드라이버 다운로드

  3. 크롬 드라이버를 파이썬 코드와 같은 폴더에 저장


📌 3. 네이버 금융 크롤링 파이썬 코드

이제 본격적으로 파이썬을 이용해 데이터를 가져오는 코드를 작성해 보겠습니다.

🔹 네이버 금융 주식 데이터 크롤링 코드

from selenium import webdriver
from selenium.webdriver.common.by import By
import pandas as pd
import time

# 크롬 드라이버 실행
driver = webdriver.Chrome()  
driver.get("https://finance.naver.com/sise/sise_market_sum.nhn?sosok=0&page=1")

# 페이지 로딩 대기
time.sleep(2)

# 크롤링할 데이터 리스트
columns = ["종목명", "현재가", "전일비", "등락률", "거래량", "시가총액"]
data_list = []

# 총 5페이지 크롤링 (원하는 만큼 조절 가능)
for page in range(1, 6):
    url = f"https://finance.naver.com/sise/sise_market_sum.nhn?sosok=0&page={page}"
    driver.get(url)
    time.sleep(2)  # 페이지 로딩 대기

    # 테이블에서 데이터 추출
    rows = driver.find_elements(By.CSS_SELECTOR, 'table.type_2 tr')

    for row in rows[2:]:  # 첫 2개 행은 헤더이므로 제외
        cols = row.find_elements(By.TAG_NAME, "td")
        if len(cols) > 1:
            row_data = [cols[i].text.strip() for i in range(len(columns))]
            data_list.append(row_data)

# 데이터프레임 생성
df = pd.DataFrame(data_list, columns=columns)

# CSV 파일로 저장
df.to_csv("naver_stock_data.csv", encoding="utf-8-sig", index=False)

print("크롤링 완료! 'naver_stock_data.csv' 파일이 생성되었습니다.")

# 브라우저 종료
driver.quit()

📌 4. 코드 설명

  1. Selenium을 이용하여 크롬 드라이버 실행

    • webdriver.Chrome()을 사용하여 크롬 브라우저를 자동으로 실행
    • 네이버 금융 시가총액 페이지로 이동
  2. 반복문을 활용하여 여러 페이지 크롤링

    • for page in range(1, 6): → 1~5페이지 반복
    • driver.get(url)을 사용해 각 페이지 접속
  3. 주식 데이터 추출

    • By.CSS_SELECTOR를 사용하여 테이블의 행(tr) 요소 가져오기
    • td 태그를 찾아 각 열의 데이터를 리스트로 저장
  4. Pandas를 이용해 CSV 파일로 저장

    • pd.DataFrame()을 사용해 데이터프레임 생성
    • to_csv()를 이용해 CSV 파일로 저장

이제 실행하면 naver_stock_data.csv 파일이 생성됩니다!


📌 5. 실행 결과 확인

실행이 완료되면 naver_stock_data.csv 파일을 열어보세요!
아래와 같이 데이터가 저장됩니다.

종목명 현재가 전일비 등락률 거래량 시가총액
삼성전자 65,000 +1,000 +1.56% 1,200,000 389조
SK하이닉스 110,000 -500 -0.45% 800,000 80조
LG화학 500,000 0 0.00% 150,000 70조

🚀 실시간으로 주식 정보를 가져와 분석할 수 있습니다!


📌 6. 마무리

지금까지 네이버 금융에서 주식 정보를 크롤링하는 방법을 배웠습니다.
이제 여러분도 자동으로 데이터를 가져와 투자 전략을 세울 수 있습니다!

추가로 할 수 있는 것들

  • 데이터를 엑셀로 저장 (to_excel() 활용)
  • 특정 종목만 필터링
  • 크롤링한 데이터를 그래프로 시각화

📢 여러분도 직접 실행해보고, 투자 전략을 세워보세요! 💰💡


📌 추천 태그

파이썬, 크롤링, 네이버 금융, Selenium, 주식 데이터, 데이터 분석, Pandas, 웹 스크래핑, 자동화