-
퀀트 프로젝트 | 파이썬 기반 네이버페이 증권 주가 크롤링Capital/Quant 2025. 12. 19. 18:00반응형
1. 네이버페이 증권 주가 크롤링

네이버페이 증권 주가 크롤링 가치 지표와 추세 지표를 직접 계산하려면 해당 종목의 주가 정보가 필요하다. 이때 네이버페이 증권에서 제공하는 정보를 활용하면 임의의 종목에 대해서 특정 기간의 시가와 종가를 편리하게 수집할 수 있다. 네이버페이 증권은 투자 종목별로 다양한 정보를 제공하는데, 아래에 제시된 주소를 규칙에 맞게 수정하여 접속하면 특정 종목의 주가 정보를 확인할 수 있다. 아래 주소를 복사하고 접속하면 2024년 2월 26일(startTime=20240226)부터 2025년 2월 26일(endTime=20250226)까지 삼성전자(symbol=005930)의 일별(timeframe=day) 주가를 확인할 수 있다. 이번 프로젝트에서는 앞서 만들었던 종목코드 파일을 불러온 뒤 네이버페이 증권에서 제공하는 종목별 주가 정보를 크롤링하는 기능을 파이썬 코드로 구현해보자.
https://api.finance.naver.com/siseJson.naver?symbol=005930&requestType=1&startTime=20240226&endTime=20250226&timeframe=day
2. 파이썬 라이브러리 설치
파이썬으로 웹사이트 정보를 크롤링하고 해석하기 위해서는 몇 가지 라이브러리를 추가로 설치해야 한다. 인터넷에 연결된 상태에서 명령 프롬프트에 아래 명령어들을 하나씩 입력하는 것으로 설치할 수 있다.
pip install requests pip install pandas pip install numpy pip install html5lib3. 프로젝트
3.1. 코스피 코스닥 종목코드 목록 생성
퀀트 프로젝트 | 파이썬으로 코스피 코스닥 종목코드 불러오기 FinanceDataReader
1. 코스피 코스닥 종목코드 불러오기 지금까지 퀀트 전략을 공부했다면 이제 전략을 직접 구현해보자. 전략을 구현하기에 앞서 투자하고자 하는 주식 시장의 모든 상장 종목과 종목코드를 알아
vedacube.tistory.com
3.2. 주가 크롤링
# 라이브러리 추가 import requests import pandas as pd import numpy as np import time # 주가 크롤링 함수 def extract_price(firm_code, timeframe, startTime, endTime): url = 'https://api.finance.naver.com/siseJson.naver?symbol='+firm_code+'&requestType=1&startTime='+startTime+'&endTime='+endTime+'&timeframe='+timeframe price_data = requests.get(url) price_data = price_data.text[61:len(price_data.text)+1] price_data = price_data.split('],\n\t\t\n[') date_list = [] price_list = [] for data in price_data: data = data.split(', ') date_list.append(data[0].replace('"','')) price_list.append(data[4]) table = pd.DataFrame({'A'+firm_code:price_list}, index=date_list) return table.transpose() # 주가 크롤링 기간 설정 startTime = '20240226' endTime = '20250226' # 저장된 종목코드 불러오기 code_data = pd.read_excel('01_KRX_stock_list.xlsx') code_data = code_data['Code'].tolist() # 종목코드별 주가 크롤링 print('Starting...') for idx, firm_code in enumerate(code_data): print(idx + 1, '/', len(code_data)) try: try: table = extract_price(firm_code[1:], 'day', startTime, endTime) except requests.exceptions.Timeout: time.sleep(60) table = extract_price(firm_code[1:], 'day', startTime, endTime) except: continue # table[firm_code] = pd.to_numeric(table[firm_code]) if idx == 0: price_table = table else: price_table = pd.concat([price_table, table]) except ValueError: continue except KeyError: continue # 주가 정보 저장 price_table.to_excel('07_priceTable.xlsx') print('Completed!')
[함께 읽으면 좋은 페이지]
파이썬이란?
1. 프로그래밍 언어 컴퓨터가 작업을 수행하기 위해서는 논리적인 순서에 맞게 명령문이 나열된 작업지시서를 사람으로부터 전달 받아야 한다. 하지만 컴퓨터는 0과 1로 구성된 기계어(machine lang
vedacube.tistory.com
참고문헌
- GIL's LAB. (2022). 손에 잡히는 퀀트 투자 with 파이썬. 위키북스.반응형'Capital > Quant' 카테고리의 다른 글
퀀트 프로젝트 | 파이썬으로 모멘텀 투자 전략 구현하기 (0) 2026.01.23 퀀트 프로젝트 | 파이썬으로 신마법공식 PBR+GP/A 전략 구현하기 (0) 2026.01.16 퀀트 프로젝트 | 파이썬으로 전자공시시스템 DART에서 재무제표 불러오기 OpenDartReader (0) 2025.11.28 퀀트 프로젝트 | 전자공시시스템 DART 오픈API 인증키 신청 (0) 2024.11.16 투자 지표: 계량투자의 종목 선택 기준 (5) 2024.11.11