🚀 네이버 금융 주식정보 크롤링하기 【파이썬 코드 포함】
💡 네이버 금융 크롤링, 왜 필요할까?
주식 투자를 할 때 가장 중요한 것은 정확한 정보입니다. 네이버 금융에서는 시가총액, 거래량, 영업이익 등 다양한 데이터를 제공하지만, 이를 직접 확인하고 정리하는 것은 번거롭습니다.
✅ 그래서 해결책!
파이썬을 이용하면 웹에서 자동으로 데이터를 수집하고 정리할 수 있습니다. 특히, Selenium과 Pandas를 활용하면 실시간 데이터를 쉽게 가져올 수 있습니다.
이 글에서는 파이썬을 이용해 네이버 금융에서 주식 정보를 크롤링하는 방법을 자세히 설명하겠습니다.
📌 완전 초보도 따라할 수 있도록 코드 포함!
📌 1. 크롤링할 데이터 확인하기
크롤링을 하기 전에 먼저 네이버 금융 페이지에서 어떤 데이터를 가져올지 확인해야 합니다.
- 네이버 금융 접속: 네이버 금융
- 국내증시 → 시가총액 클릭
- 시가총액 상위 종목 리스트 확인
🔍 URL 구조 분석
예를 들어, 코스피 시가총액 페이지의 URL은 다음과 같습니다.
https://finance.naver.com/sise/sise_market_sum.nhn?sosok=0&page=1
📌 sosok=0
→ 코스피 / sosok=1
→ 코스닥
📌 page=1
→ 페이지 번호
📌 2. 크롤링을 위한 파이썬 환경 설정
크롤링을 위해 Selenium
과 Pandas
패키지가 필요합니다.
🛠 필수 라이브러리 설치
아래 명령어를 실행하여 필요한 패키지를 설치합니다.
pip install selenium pandas
🛠 크롬 드라이버 다운로드
크롬 브라우저 버전 확인
- 크롬 주소창에
chrome://version/
입력 - "버전" 확인 (예: 104.0.5112.79)
- 크롬 주소창에
크롬 드라이버 다운로드
- 크롬 드라이버 다운로드
- 본인의 크롬 버전에 맞는 드라이버 다운로드 후 압축 해제
크롬 드라이버를 파이썬 코드와 같은 폴더에 저장
📌 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. 코드 설명
Selenium을 이용하여 크롬 드라이버 실행
webdriver.Chrome()
을 사용하여 크롬 브라우저를 자동으로 실행- 네이버 금융 시가총액 페이지로 이동
반복문을 활용하여 여러 페이지 크롤링
for page in range(1, 6):
→ 1~5페이지 반복driver.get(url)
을 사용해 각 페이지 접속
주식 데이터 추출
By.CSS_SELECTOR
를 사용하여 테이블의 행(tr
) 요소 가져오기td
태그를 찾아 각 열의 데이터를 리스트로 저장
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, 웹 스크래핑, 자동화